Установление соответствия между элементом множества/списка и математическим оператором

Могу ли я установить соответствие между элементом списка или множества и математическим оператором?

Например, если вводят два числа и знак сложения, чтобы программа определяла этот знак без прописывания 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
→ Ссылка