Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Evaluation de chaine

2 réponses
Avatar
george
Bonjour,

Si je stocke dans a la chaine "x=3" (en faisant a="x=3") et qu'ensuite
je fais eval(a) afin de faire référencer l'entier 3 par x, j'obtiens une
erreur de syntaxe. Comment faire pour contourner ce problème ?

Merci.


George

2 réponses

Avatar
Benoit Izac
Bonjour,
Le 13/06/2020 à 10:26, george a écrit dans le
message <5ee48d9e$0$24264$ :
Si je stocke dans a la chaine "x=3" (en faisant a="x=3") et qu'ensuite
je fais eval(a) afin de faire référencer l'entier 3 par x, j'obtiens
une erreur de syntaxe. Comment faire pour contourner ce problème ?

« x=3 » est une instruction, pas une expression. Il faut utiliser exec().
eval() évalue une expression, par exemple « eval('4+2+1') » renvoie
« 7 ».
--
Benoit Izac
Avatar
george
Le 13/06/2020 à 13:24, Benoit Izac a écrit :
Bonjour,
Le 13/06/2020 à 10:26, george a écrit dans le
message <5ee48d9e$0$24264$ :
Si je stocke dans a la chaine "x=3" (en faisant a="x=3") et qu'ensuite
je fais eval(a) afin de faire référencer l'entier 3 par x, j'obtiens
une erreur de syntaxe. Comment faire pour contourner ce problème ?

« x=3 » est une instruction, pas une expression. Il faut utiliser exec().
eval() évalue une expression, par exemple « eval('4+2+1') » renvoie
« 7 ».

Merci beaucoup Benoit Izac pour ta réponse. C'est exactement ce dont
j'avais besoin avec en prime l'explication.