Kaynağa Gözat

add l2.py file

Stepan 2 ay önce
ebeveyn
işleme
5714f291b0
1 değiştirilmiş dosya ile 65 ekleme ve 0 silme
  1. 65 0
      l2.py

+ 65 - 0
l2.py

@@ -0,0 +1,65 @@
+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()