Установление соответствия между элементом множества/списка и математическим оператором
Могу ли я установить соответствие между элементом списка или множества и математическим оператором?
Например, если вводят два числа и знак сложения, чтобы программа определяла этот знак без прописывания if-ов на ввод или перебором среди множеств или списков из элементов '*', '/', '+', '-' находила нужный знак для выполнения условия, например, при вводных 3 и 2 выполнялось условие 3 (знак действия) 2 == 5.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ну хоть словарь то можно? Если можно, то как-то так:
import re
from operator import add,sub,mul,truediv
pattern = re.compile('(\d+)\s*(\D)\s*(\d+)')
d = {
'+': add,
'-': sub,
'*': mul,
'/': truediv
}
while True:
todo = input('Введите выражение:')
match = pattern.match(todo)
if not match:
print('Выражение не распознано!')
continue
a, op, b = match.groups()
if op not in d:
print('Оператор не распознан!')
continue
print(d[op](int(a),int(b)))
break