def do_operation(a, b, operation):
try:
result = operation(a, b)
print(f"\nРезультат: {result}\n")
except Exception as e:
print(f"Произошла ошибка: {e}\n")
def add(a, b):
return a + b
def multiply(a, b):
return a * b
def get_number(prompt):
while True:
user_input = input(prompt)
if user_input.lower() == 'exit':
print("Выход из программы.")
exit()
try:
return float(user_input)
except ValueError:
print("Некорректный ввод. Пожалуйста, введите числовое значение.")
def show_menu():
print("\n--- Меню операций ---")
print("1: Сложение")
print("2: Умножение")
print("3: Выход")
def main():
while True:
print("\n--- Калькулятор ---")
a = get_number("Введите первое число (или 'exit' для выхода): ")
b = get_number("Введите второе число (или 'exit' для выхода): ")
show_menu()
choice = input("Выберите номер операции: ")
if choice == '1':
do_operation(a, b, add)
elif choice == '2':
do_operation(a, b, multiply)
elif choice == '3':
print("Выход из программы.")
break
else:
print("Некорректный выбор операции. Пожалуйста, попробуйте снова.")
if __name__ == "__main__":
main()
result = operation(a, b) # принимает 2 аргумента
print(f"result = {result}") # принимает 1 аргумент
do_operation(5, 4, lambda a, b: a + b) # result = 9
do_operation(5, 4, lambda a, b: a * b) # result = 20