назначить оператор переменной в Python? - PullRequest
29 голосов
/ 06 июня 2010

Обычный метод применения математики к переменным:

a * b

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

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

Ответы [ 3 ]

47 голосов
/ 06 июня 2010

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

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)
6 голосов
/ 06 июня 2010

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

1 голос
/ 06 июня 2010

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

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

...