Найти в Дзене
Вечный джун

Альтернативный калькулятор без if на Python

Ни для кого не секрет, что калькулятор это как правило одна из первых программ которую пишет программист. Она ориентирована на проверку того, на сколько хорошо человек понимает условия(if и else). И правильно, ведь невозможно сделать калькулятор без проверки. Как бы и да и нет. Без «if» можно сделать подобный калькулятор, но придётся подключать встроенную библиотеку и использовать try. Я сделал подобный калькулятор. Можно было конечно обойтись и без raise, но тогда бы пришлось использовать else. import operator action = { "+": operator.add, "-": operator.sub, "/": operator.truediv, "*": operator.mul, "**": pow } try: first_num = int(input("Введите первое число(int): ")) second_num = int(input("Введите второе число(int): ")) except ValueError: raise Warning("Я просил ввести число") try: act = input("""Что сделать с этими числами?\n + сложить\n - вычесть\n / разделить\n * перемножить\n ** возвести в степень\n""") answer = actio

Ни для кого не секрет, что калькулятор это как правило одна из первых программ которую пишет программист. Она ориентирована на проверку того, на сколько хорошо человек понимает условия(if и else). И правильно, ведь невозможно сделать калькулятор без проверки.

Как бы и да и нет. Без «if» можно сделать подобный калькулятор, но придётся подключать встроенную библиотеку и использовать try.

Я сделал подобный калькулятор. Можно было конечно обойтись и без raise, но тогда бы пришлось использовать else.

Нет не он. Калькулятор ниже.
Нет не он. Калькулятор ниже.
import operator
action = {
"+": operator.add,
"-": operator.sub,
"/": operator.truediv,
"*": operator.mul,
"**": pow
}
try:
first_num = int(input("Введите первое число(int): "))
second_num = int(input("Введите второе число(int): "))
except ValueError:
raise Warning("Я просил ввести число")
try:
act = input("""Что сделать с этими числами?\n
+ сложить\n
- вычесть\n
/ разделить\n
* перемножить\n
** возвести в степень\n""")
answer = action[act](first_num, second_num)
except KeyError:
raise Warning("Неправильно указанно действие")
except ZeroDivisionError:
raise Warning("На 0 делить нельзя")
print(f"Ответ - {answer}")