Python
Как сделать калькулятор на Питоне: простой код для начинающих
Калькулятор — хороший первый проект на Питоне, потому что в нем сразу встречаются ввод данных, преобразование строки в число, условия if, арифметика и вывод результата. При этом проект остается маленьким: его можно написать в одном файле и сразу запустить
Начинать лучше с консольного калькулятора, без окон и кнопок. Графический интерфейс можно добавить позже, когда сама логика уже понятна
Короткий ответ
Создайте файл calculator.py и вставьте код
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)
Запустите
python calculator.py
Пример работы
Первое число: 10
Операция (+, -, *, /): *
Второе число: 5
Результат: 50.0
Почему нужен float
input() всегда возвращает строку. Даже если пользователь ввел 10, для Python это текст "10", а не число. Чтобы можно было считать, ввод нужно преобразовать
first = float(input("Первое число: "))
float() позволяет вводить не только целые, но и дробные числа
3.5
10.25
0.7
Если вам нужны только целые числа, можно использовать int(), но для калькулятора float() обычно удобнее
Как работает выбор операции
Калькулятор спрашивает знак операции и сравнивает его с возможными вариантами
if operation == "+":
result = first + second
elif operation == "-":
result = first - second
elif operation == "*":
result = first * second
elif operation == "/":
result = first / second
else:
result = "Неизвестная операция"
if проверяет первый вариант, elif проверяет следующие, else срабатывает, если пользователь ввел что-то другое
Почему нужно проверять деление на ноль
Если пользователь введет второе число 0 и выберет деление, Python не сможет выполнить операцию
10 / 0
Будет ошибка ZeroDivisionError. Поэтому деление лучше обработать отдельно
elif operation == "/":
if second == 0:
result = "На ноль делить нельзя"
else:
result = first / second
Так программа не падает, а показывает понятное сообщение
Как сделать калькулятор в цикле
Можно сделать так, чтобы калькулятор не закрывался после одного расчета
while True:
first = float(input("Первое число: "))
operation = input("Операция (+, -, *, /) или q для выхода: ")
if operation == "q":
break
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)
print()
Теперь можно считать несколько примеров подряд. Для выхода пользователь вводит q
Как сделать код аккуратнее через функцию
Когда код начинает повторяться, его можно вынести в функцию
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 "Неизвестная операция"
print(calculate(10, "+", 5))
print(calculate(10, "/", 0))
Функция полезна тем, что ее можно проверить без ручного ввода. Сначала убедились, что calculate() работает, потом добавили input()
Мини-практика
Добавьте в калькулятор операцию %, которая считает остаток от деления. Затем добавьте операцию **, которая возводит число в степень
Проверьте три примера: 10 % 3, 2 ** 5, 10 / 0. Если калькулятор правильно считает первые два и не падает на делении на ноль, базовая логика работает
Частые ошибки
Ошибка первая: не преобразовать ввод в число. Если складывать строки, "10" + "5" даст "105", а не 15
Ошибка вторая: использовать один знак = вместо сравнения ==. В условии нужно писать operation == "+"
Ошибка третья: не обработать деление на ноль. Хороший учебный калькулятор должен показывать понятное сообщение
Ошибка четвертая: сразу пытаться делать красивое окно. Сначала сделайте рабочую логику в консоли, потом переходите к Tkinter или веб-интерфейсу
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Как сделать конвертер валют на Python: простой проект для начинающих
- Калькулятор на Python: простой пример для начинающих с input() и функциями
- Как сделать ИИ на Python: простой проект без магии
- Как сделать многострочный комментарий в Питоне: решетка, тройные кавычки и docstring