2010-06-06 4 views
24

Обычный метод применения математики в переменныхприсваивать оператор переменной в python?

a * b 

ли возможность рассчитать и манипулировать двумя операндами, как это?

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

Тогда как я подключить оп и две переменные a и b?
Я знаю, что могу сравнить с ор +, -, %, $, а затем назначать и вычислить ....

Но я могу сделать что-то вроде a op b, как сказать компилятору, что оп является оператором?

ответ

37

Вы можете использовать модуль оператора и словарь:

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

Да, этот модуль замечательный, я проверяю его, спасибо ...... –

+0

Для python 3.x вместо https: // docs следует использовать 'operator.truediv' или' operator.floordiv'. python.org/3/library/operator.html –

6

Оператор модуль http://docs.python.org/library/operator.html предоставляет функции, соответствующие практически все операторы Python. Вы можете сопоставить символы оператора с этими функциями для получения правильной функции, затем назначить ее переменной op и вычислить op (a, b).

1

Вам необходимо сравнить введенную строку пользователя с вашим списком операндов вручную. Здесь нет аналога функции int(), поскольку операторы являются ключевыми словами в языке, а не значения.

После того как вы сравнили эту строку ввода с вашим списком операндов и определили оператор, которому она соответствует, вы можете использовать стандартную библиотеку Python operator module, чтобы вычислить результат применения оператора к вашим двум операндам.

Смежные вопросы