Подтвердить что ты не робот

Присваивать оператор переменной в 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 является оператором?

4b9b3361

Ответ 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 операторский модуль, чтобы вычислить результат применения оператора к вашим двум операндам.