my/python/l2.py
2026-05-07 00:18:35 +03:00

65 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import sys
sp = [] # Список для истории
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
return 'Ошибка: деление на 0'
return a / b
def calculate(n1, op, n2):
if op == '+':
res = add(n1, n2)
elif op == '-':
res = subtract(n1, n2)
elif op == '*':
res = multiply(n1, n2)
elif op == '/':
res = divide(n1, n2)
else:
return 'Неизвестная операция'
return res
def show_history():
print('\n--- История ---')
for i, entry in enumerate(sp[-5:], 1):
print(f' {i}. {entry}')
print()
def calc():
while True:
try:
n1 = float(input('Первое число: '))
n2 = float(input('Второе число: '))
except ValueError:
print('Ошибка: введите число!')
continue
op = input('Операция (+, -, *, /): ')
result = calculate(n1, op, n2)
if isinstance(result, str):
print(result)
continue
entry = f'{n1} {op} {n2} = {result}'
sp.append(entry)
print(entry)
pol = input('Ещё раз? (да/history/нет): ')
if pol == 'нет':
break
elif pol == 'history':
show_history()
elif pol != 'да':
print('Не тот выбор')
calc()