Напиши простой калькулятор на python
Ответ нейросети
10 сентября 2025 16:13
Задача: создать простой калькулятор на Python и понять, как он работает. Подойдет для 9 класса по информатике.
План решения
- Сделаем калькулятор, который читает выражение в формате: число оператор число (пример: 3 + 4) или же можно вводить через три части: сначала число, затем оператор, затем число.
- Реализуем операторы: +, -, *, /.
- Добавим обработку ошибок: неверный формат ввода, деление на ноль, неподдерживаемый оператор.
- Сделаем цикл, чтобы можно было выполнять много вычислений подряд, выход по сути команды q/quit.
Пояснение по шагам
- Определяем функцию calculate(a, b, op), которая выбирает действие в зависимости от op и возвращает результат.
- В основном цикле принимаем ввод пользователя в виде тройки: число, оператор, число (через пробел). Это упрощает разбор и делает программу понятнее ученику 9 класса.
- Преобразуем введенные числа в float — так калькулятор сможет работать как с целыми числами, так и с дробями.
- Обрабатываем возможные ошибки:
- Неправильный формат ввода (нужно три части: число, оператор, число).
- Неподдерживаемый оператор.
- Деление на ноль.
- Выводим результат. Если результат целый, показываем его без дробной части.
Код (Python 3)
def calculate(a, b, op): if op == '+': return a + b elif op == '-': return a - b elif op == '*': return a * b elif op == '/': if b == 0: raise ZeroDivisionError("Деление на ноль нельзя") return a / b else: raise ValueError("Неподдерживаемый оператор: " + op)
def main(): print("Простой калькулятор. Введите выражение в формате: число оператор число (например: 3 + 4).") print("Доступные операторы: +, -, *, /") print("Чтобы выйти, введите q, quit или exit.")
while True:
s = input("Введите выражение: ").strip()
if s.lower() in ('q', 'quit', 'exit'):
print("Выход.")
break
parts = s.split()
if len(parts) != 3:
print("Неправильный формат. Попробуйте: 3 + 4")
continue
a_str, op, b_str = parts
try:
a = float(a_str)
b = float(b_str)
except ValueError:
print("Некорректные числа. Используйте числа для двух операндов.")
continue
try:
result = calculate(a, b, op)
# Красиво выводим целые числа без дробной части
if isinstance(result, float) and result.is_integer():
print("Результат:", int(result))
else:
print("Результат:", result)
except ZeroDivisionError as e:
print("Ошибка:", e)
except ValueError as e:
print("Ошибка:", e)
if name == "main": main()
Как это использовать
- Запустите файл в Python 3 (например, python3 имя_файла.py).
- Введите выражение типа:
- 3 + 4
- 10 / 2
- 5 * 6
- 7 - 3.5
- Чтобы выйти, введите q или quit или exit и нажмите Enter.
Расширения (для будущего обучения)
- Поддержать ввод без пробелов, например 3+4, путем парсинга строки.
- Добавить дополнительные операции: возведение в степень, проценты и т.д.
- Сделать калькулятор с кнопочным интерфейсом (GUI) через Tkinter.
- Сделать обработку выражений с скобками и приоритетами через модуль ast или eval с ограничениями (для безопасного парсинга), но это уже более продвинутый уровень.
Если хочешь, могу адаптировать решение под конкретный формат ввода, например только через три отдельных ввода: первое число, оператор, второе число. Или сделаю версию с графическим интерфейсом.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



