Python
Калькулятор на Python: простой пример для начинающих с input() и функциями
Самый простой калькулятор на Python можно написать без библиотек: программа спрашивает два числа, спрашивает операцию, считает результат и выводит его в консоль. Такой проект хорош для старта, потому что в нем сразу встречаются input(), преобразование типов, условия, арифметика и базовая обработка ошибок
first = float(input("Первое число: "))
operation = input("Операция (+, -, *, /): ")
second = float(input("Второе число: "))
if operation == "+":
result = first + second
elif operation == "-":
result = first - second
elif operation == "*":
result = first * second
elif operation == "/":
result = first / second
else:
result = "Неизвестная операция"
print("Результат:", result)
Если ввести 10, потом +, потом 5, программа выведет 15.0
Что важно понять в этом коде
input() всегда возвращает строку, поэтому числа мы превращаем через float(). Если оставить ввод как текст, Python не сможет нормально выполнять арифметику или начнет склеивать строки вместо сложения. Операцию мы оставляем строкой, потому что пользователь вводит символ +, -, * или /, а дальше обычный if/elif выбирает нужное действие
В этом варианте есть слабое место: деление на ноль. Если пользователь выберет / и введет второе число 0, Python выдаст ошибку ZeroDivisionError. Для учебного калькулятора это нужно исправить сразу, потому что такая проверка показывает, что программа должна думать не только о счастливом сценарии
Версия с проверкой деления на ноль
first = float(input("Первое число: "))
operation = input("Операция (+, -, *, /): ")
second = float(input("Второе число: "))
if operation == "+":
result = first + second
elif operation == "-":
result = first - second
elif operation == "*":
result = first * second
elif operation == "/":
if second == 0:
result = "На ноль делить нельзя"
else:
result = first / second
else:
result = "Неизвестная операция"
print("Результат:", result)
Теперь калькулятор не падает при делении на ноль, а выводит понятное сообщение. Это маленькая вещь, но именно из таких проверок начинается нормальное программирование: пользователь может ошибиться, а код должен отвечать спокойно
Как запустить калькулятор у себя
Создайте папку calculator_python, внутри создайте файл main.py, вставьте код и запустите из терминала. На Windows это может быть PowerShell или терминал VS Code, на macOS — Terminal, на Linux — обычный терминал. Главное, чтобы команда запускалась из той папки, где лежит файл
python main.py
Если команда python не работает, попробуйте
python3 main.py
После запуска программа будет задавать вопросы в консоли. Введите первое число, нажмите Enter, введите операцию, снова Enter, потом второе число и снова Enter
Калькулятор через функции
Когда простой вариант понятен, логику лучше вынести в функцию. Так код становится аккуратнее: одна часть отвечает за расчет, другая — за ввод и вывод. Для маленькой программы это кажется лишним, но для обучения это важный шаг от «простынки кода» к нормальной структуре
def calculate(first, operation, second):
if operation == "+":
return first + second
if operation == "-":
return first - second
if operation == "*":
return first * second
if operation == "/":
if second == 0:
return "На ноль делить нельзя"
return first / second
return "Неизвестная операция"
first = float(input("Первое число: "))
operation = input("Операция (+, -, *, /): ")
second = float(input("Второе число: "))
print("Результат:", calculate(first, operation, second))
Функция calculate() получает уже готовые значения и возвращает результат. Ее можно проверить отдельно, не запуская весь ввод каждый раз
print(calculate(10, "+", 5))
print(calculate(10, "/", 0))
Как обработать неправильное число
Если пользователь введет не число, а текст, float() выдаст ValueError. Для учебного проекта можно добавить try/except, чтобы программа не падала
try:
first = float(input("Первое число: "))
operation = input("Операция (+, -, *, /): ")
second = float(input("Второе число: "))
print("Результат:", calculate(first, operation, second))
except ValueError:
print("Введите числа корректно, например 10 или 10.5")
Такой калькулятор все еще простой, но уже ведет себя как нормальная программа: сообщает о проблеме понятным языком, а не показывает пользователю стек ошибки
Мини-задача для доработки
Добавьте операцию возведения в степень . Пользователь вводит , программа считает first ** second. После этого добавьте операцию остатка от деления %, чтобы калькулятор мог показывать остаток, например 10 % 3 даст 1
Подсказка: в функцию calculate() нужно добавить еще два условия
if operation == "**":
return first ** second
if operation == "%":
return first % second
Частые ошибки
Результат 105 вместо 15
Вы сложили строки, а не числа. Значит, забыли int() или float() вокруг input()
first = float(input("Первое число: "))
Умножение не работает
В Python умножение пишется через *, а не через x и не через знак ×. Пользователь может ввести x, но тогда вам нужно отдельно обработать такой вариант
Деление на ноль ломает программу
Проверьте second == 0 до деления. Это хороший первый пример защитной проверки в коде
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Как сделать калькулятор на Питоне: простой код для начинающих
- Как подключить HTML к Python: Flask, шаблоны и простой пример
- Как сделать конвертер валют на Python: простой проект для начинающих
- Как создать сайт на Python: простой пример на Flask