affecter l'opérateur à la variable en python?

la méthode habituelle pour appliquer les mathématiques aux variables est

a * b

est-il capable de calculer et de manipuler deux opérandes comme celle-ci?

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

alors comment connecter op et deux variables a et b?

Je sais que je peux comparer op +,-,%,$ puis assigner et calculer....

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

26
demandé sur Kevin Guan 2010-06-06 08:55:04

3 réponses

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)
42
répondu Matthew Flaschen 2010-06-06 05:02:30

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

6
répondu Luciano Ramalho 2010-06-06 05:00:25

Vous aurez besoin de comparer l'utilisateur est entré chaîne de votre liste d'opérandes à la main. Il n'y a pas d'équivalent 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 de saisie à votre liste d'opérandes et déterminé l'opérateur auquel elle correspond, Vous pouvez utiliser la bibliothèque standard de Python module opérateur pour calculer le résultat de l'application de l'opérateur de votre deux opérandes.

1
répondu Jordan Lewis 2010-06-06 05:00:25