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

32
задан Kevin Guan 17 October 2015 в 13:31
поделиться

3 ответа

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

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)
52
ответ дан 27 November 2019 в 20:32
поделиться

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

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

1
ответ дан 27 November 2019 в 20:32
поделиться

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

9
ответ дан 27 November 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: