Как было сказано в комментариях, вы можете использовать значение UCIO
и связать его с целевой функцией, которая будет использоваться.
- Создать словарь, содержащий
UCIO
.С каждым UCIO
, имеющим alias
, message
и рабочую функцию fct
- Напечатайте все возможные варианты, просматривая словарь и выбирая его
message
ключ - Соберите свои входные данные,
UCIO
, x
и y
- Если
UCIO
находится в возможных вариантах, используйте соответствующую рабочую функцию fct
из словаря - Остальноесообщить об ошибке
ops = {}
ops['1'] = { 'alias': '+', 'message': 'Addition', 'fct': lambda x, y : x + y }
ops['2'] = { 'alias': '-', 'message': 'Substraction', 'fct': lambda x, y : x - y }
ops['3'] = { 'alias': '*', 'message': 'Multiplication', 'fct': lambda x, y : x * y }
ops['4'] = { 'alias': '/', 'message': 'Division', 'fct': lambda x, y : x / y }
ops['5'] = { 'alias': '^', 'message': 'Power', 'fct': lambda x, y : x ** y }
for k in ops.keys():
print(f'{k}. {ops[k]["message"]}')
UCIO = input(f"Enter an operation {'/'.join(ops.keys())} : ")
x = input("Enter your first number: ")
y = input("Enter your second number: ")
if UCIO in ops and UCIO in ops:
result = ops[UCIO]['fct'](float(x), float(y))
print(f'{x} {ops[UCIO]["alias"]} {y} = {result}')
else:
print('No candidates for the operation {UCIO}')