Присваивать оператор переменной в python?
Обычным методом применения математики к переменным является
a * b
Может ли он вычислять и манипулировать двумя операндами, подобными этому?
a = input('enter a value')
b = input('enter a value')
op = raw_input('enter a operand')
Тогда как я могу соединить op и две переменные a
и b
?
Я знаю, что я могу сравнить op с +
, -
, %
, $
, а затем назначить и вычислить....
Но могу ли я сделать что-то вроде a op b
, как сообщить компилятору, что op является оператором?
Ответы
Ответ 1
Вы можете использовать операторский модуль и словарь:
import operator
ops = {
"+": operator.add,
"-": operator.sub,
"*": operator.mul,
"/": operator.div
}
op_char = input('enter a operand')
op_func = ops[op_char]
result = op_func(a, b)
Ответ 2
Операционный модуль http://docs.python.org/library/operator.html предоставляет функции, соответствующие практически всем операторам Python. Вы можете сопоставить символы оператора с этими функциями для получения правильной функции, затем назначить ее переменной op и вычислить op (a, b).
Ответ 3
Вам нужно будет сравнить введенную пользователем строку с вашим списком операндов вручную. Здесь нет аналога функции int(), поскольку операторы являются ключевыми словами в языке, а не значениями.
Как только вы сравните эту входную строку с вашим списком операндов и определите оператор, которому это соответствует, вы можете использовать стандартную библиотеку Python операторский модуль, чтобы вычислить результат применения оператора к вашим двум операндам.