Outils pour utilisateurs

Outils du site


nsi:projets:expression_parser

Parseur d'expression arithmétique

On souhaite, une expression de calcul étant donnée dans une chaîne de caractère, pouvoir donner le résultat du calcul.

Exemple

Étant donné la chaîne "14 + 7 *(38 - 5)", on souhaite obtenir le résultat 245.

eval interdit !

Python dispose d'une fonction eval() qui permet de répondre au problème. Mais cette fonction est dangereuse car elle permet d'exécuter n'importe quel code qu'on lui fournirait. Elle ne se limite pas aux expressions arithmétiques. Pour cette raison, en général, on déconseille d'utiliser la fonction eval, elle est trop dangereuse.

Aller plus loin

  • Un résultat approximatif sous forme d'un float me convient. Vous pouvez mieux faire en envisageant de gérer les nombres fractionnaires de façon à toujours donner un résultat exacte sous forme d'une fraction réduite.
  • Vous pouvez demander à votre parseur de reconnaître l'expression pi.
  • Vous pouvez demander à votre parseur d'être capable de lire des nombres de type float sous divers format – par exemple 1.5E-2.
nsi/projets/expression_parser.txt · Dernière modification : de goupillwiki