2010-06-06 7 views
24

méthode habituelle de l'application des mathématiques à des variables estaffecter un opérateur à une variable en python?

a * b 

Est-il capable de calculer et de manipuler deux opérandes comme celui-ci?

a = input('enter a value') 
b = input('enter a value') 
op = raw_input('enter a operand') 

Alors, comment puis-je connecter op et deux variables a et b?
Je sais que je peux comparer à + op, -, %, $ puis attribuez-lui et calculer ....

Mais ce que je peux faire quelque chose comme a op b, comment dire compilateur op est un opérateur?

Répondre

37

Vous pouvez utiliser le module opérateur et un dictionnaire:

import operator 
ops = {"+": operator.add, 
     "-": operator.sub, 
     "*": operator.mul, 
     "/": operator.div} 
op_char = raw_input('enter a operand') 
op_func = ops[op_char] 
result = op_func(a, b) 
+0

oui ce module est génial, je le vérifie, merci ...... –

+0

Pour python 3.x le 'operator.truediv' ou' operator.floordiv' devrait être utilisé à la place https: // docs. python.org/3/library/operator.html –

6

Le module opérateur http://docs.python.org/library/operator.html expose les fonctions correspondant à pratiquement tous les opérateurs de Python. Vous pouvez mapper des symboles d'opérateur sur ces fonctions pour récupérer la fonction appropriée, puis l'affecter à votre variable op et calculer op (a, b).

1

Vous devrez comparer manuellement la chaîne entrée par l'utilisateur à votre liste d'opérandes. Il n'y a pas d'analogue de int() ici, puisque les opérateurs sont des mots-clés dans la langue et non des valeurs. Une fois que vous avez comparé cette chaîne d'entrée à votre liste d'opérandes et déterminé l'opérateur auquel elle correspond, vous pouvez utiliser le operator module de la bibliothèque standard Python pour calculer le résultat de l'application de l'opérateur à vos deux opérandes.

Questions connexes