51 votes

Opérations mathématiques à partir d'une chaîne

Disons que j'ai une chaîne Python standard (comme celle obtenue à partir de raw_input() ), peut-être "2 + 2" pour des raisons de simplicité.

J'aimerais convertir cette chaîne en opérations mathématiques standard en Python, de sorte que "2 + 2" renvoie 4 .

Existe-t-il un moyen simple de le faire, ou devrais-je diviser les espaces et analyser chaque nombre/symbole manuellement, puis faire le calcul en fonction de ce que je trouve ?

Est-ce que je veux Regex ?

10voto

MOHAMMAD WASEEM Points 68

Vous pouvez utiliser cette fonction qui fait la même chose que la fonction eval() , mais de manière simple, en utilisant une fonction.

 def numeric(equation):
    if '+' in equation:
        y = equation.split('+')
        x = int(y[0])+int(y[1])
    elif '-' in equation:
        y = equation.split('-')
        x = int(y[0])-int(y[1])
    return x

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X