Interpréter un string comme un calcul à effectuer
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.lang.python ]
Bonjour à toutes et à tous
Je sais que
a = "3"
print float(3)+5
donne le résultat attendu 8.
Ce que je voudrais faire est plus fort. Je voudrais faire
a = "3+5"
print ????(a)
qui donnerait 8.
Ma motivation est de créer un script en python qui produit du code
pstricks (pour LaTeX). Je dois donc d'une part pouvoir produire la
ligne
\newcommand{\Fn}[1]{(-3)/(x)+5} càd -3/x + 5
(c'est pour cela que je voudrais avoir " (-3/x) +5" comme string en
python)
et d'autre part, pouvoir calculer la valeur de cette fonction en des x
arbitraires. Ce que je compte faire, c'est
a = "(-3/x) +5"
b = a.replace("x",23)
et puis "évaluer" b. À ce moment, j'ai que b vaut le string
"(-3/25)+5".
Je suis sûr que python peut me trouver la valeur 4.88 à partir de ce
string, n'est-ce pas ?
Pour la petite histoire, en LaTeX pur, faire exactement ce que je
décris, ça passe.
Si je fais
\newcommand{\Fn}[1]{(-3)/(#1)+5} equivalent de a = "(-3/x) +5"
\newcommand{\psFn}{\Fn{x}} equivalent
de b = a.replace("x",23)
alors
\psplot{0.5}{9}{\psFn}
trace bien la courbe -3/x +5 entre 0.5 et 9
et
\FPeval{resultat}{\Fn(3)}
donne bien la valeur de la fonction en 3 dans \resultat.
Ce dont j'ai besoin est donc en python une fonction aussi forte que
\FPeval en LaTeX.
Merci pour vos lumières,
bonne nuit
Laurent

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|