Простой калькулятор на Python | Блог Timeweb Cloud
В последние годы цифровой мир всё больше использует облачные системы. Сервисы вродеtimeweb.cloud доказали своё удобство и надёжность, мгновенно обрабатывая гигантские объёмы информации. Но сегодня мы вспомним основы современных технологий и расскажем вам, как написать программу-калькулятор своими руками.
Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.
В начале работы над калькулятором вспомним, из чего он состоит и как он работает. Мы будем писать аналог простого настольного калькулятора, который есть у каждого школьника. Прочитав эту статью и выполнив все задания, вы получите готовый код на питоне простейшего калькулятора.
У настольного калькулятора есть:
- Кнопки с цифрами
- Кнопки с математическими операциями
- Дисплей
- Микросхемки внутри
В функции настольного калькулятора входит:
- Сложение
- Вычитание
- Деление
- Умножение
- Сброс операции
- Сохранение результата
- Вычисление процента
- Взятие корня числа
Для понимания принципа написания калькулятора возьмем из этого списка минимальный набор функций:
- Ввод чисел
- Вывод результата
- Сложение
- Вычитание
- Деление
- Умножение
Код можно писать прямо в онлайн-редакторе.
Например:
- https://www.online-python.com/
- https://replit.com/languages/python3
Математические операции, которые будем использовать:
2+2Вывод значения
410-5
53*3
912/4
3.0
Чтобы видеть результат, его нужно вывести на экран. Для этого существует функция print(), которая выводит аргументы в скобках в консоль.
print(4 * 4)
16
Эта функция будет аналогом дисплея нашего калькулятора.
Сохранение результата в переменнуюЧтобы не производить вычисления внутри функции print(), будем хранить их в переменной.
result = 16 / 8
Далее мы сможем вывести в консоль значение переменной.
print(result)Чтение строк
2.0
С дисплеем разобрались, теперь используем Python 3 для создания ввода с клавиатуры.
У нас есть кнопки с цифрами на клавиатуре, чтобы передать их программе, существует функция input(). При вызове она считывает любые символы с клавиатуры до тех пор, пока не будет нажата клавиша Enter. После этого она возвращает результат в виде строки из введённых символов. Давайте посмотрим, как это работает:
text = input() # Hi
Hi
Выведем результат на экран.
print(text)
Hi
Если передать внутрь функции input() текст, то он выводится на экран перед тем, как начнётся считывание строки.
username = input('Enter your name: ') # Иван
print(username)
Enter your name: Иван
ИванОбъединение и форматирование строкЧтобы вывод данных стал более дружелюбным, мы можем добавить пояснения к ним. Для этого используем объединение (конкатенацию) строк.
print('Hello, ' + username + '!')
Hello, Иван!Ещё один способ объединения текста с данными — использование форматированных строк.
Для этого перед кавычками необходимо поставить символ f, а данные записывать прямо внутри строки в фигурных скобках. Такой функционал появился с версии Python 3.6.0.
print(f'Hello, {username}!')
Hello, Иван!Перевод строк в числоТеперь, когда мы умеем производить математические операции, считывать данные с клавиатуры и красиво выводить результат в консоль, давайте наконец-то напишем первую версию калькулятора! Для простоты пусть он пока будет только складывать числа, но это уже будет готовый пример кода программы на Питон.
# Считываем данныеa = input('Введите первое число: ')
b = input('Введите второе число: ')# Производим вычисления
result = a + b
# Выводим результат в консоль
print(f'Сумма чисел {a} и {b} равняется: {result}')
Введите первое число: 12
Введите второе число: 55
Сумма чисел 12 и 55 равняется: 1255
Что-то пошло не так. Числа не сложились, а объединились как текст.
Дело в том, что input() в Python возвращает ввод строки с клавиатуры, даже если вы вводили только числа. Такое поведение более явное, что соответствует философии Python: «Явное лучше, чем неявное». Для того чтобы исправить возникшую ошибку, используем функцию перевода строки в число: int(). Посмотрим на примере, как работает num int input:
num = int(input())
print(num + 10)
32
42
Отредактируем нашу программу.
# Считываем данныеa = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))# Производим вычисления
result = a + b
# Выводим результат в консоль
print(f'Сумма чисел {a} и {b} равняется: {result}')
Введите первое число: 12
Введите второе число: 55
Сумма чисел 12 и 55 равняется: 67
Обработка некорректных данныхНо что если пользователь введёт не числа, а буквы или другие символы? При попытке перевести такую строку в число Python выдаст ошибку и остановит выполнение программы.
int(input('Введите первое число: '))
Введите первое число: abc
------------------------------------------------------------------------ValueError Traceback (most recent call last)
C:\Temp\ipykernel_5404\317567321.py in <module>
----> 1 int(input('Введите первое число: '))
ValueError: invalid literal for int() with base 10: 'abc'
Такие ошибки можно оперативно определять и менять стандартное поведение при их возникновении, например предлагать пользователю ввести число заново. Но это отдельная тема для разговора, поэтому в контексте этой статьи условимся, что пользователь всегда вводит корректные данные.
Создание функцийИтак, у нас есть практически все компоненты для того, чтобы написать полноценный калькулятор. Давайте расширим функционал текущей версии до выполнения всех математических операций, которые мы запланировали:
- Сложение
- Вычитание
- Деление
- Умножение
Чтобы улучшить читаемость кода, разделим эти операции на отдельные функции.
IndentationError: expected an indented block
Результат работы функции можно также сохранить в переменную для дальнейшего использования.
x = sum(10, 15)
print(x)
25
Аналогичным образом создадим остальные функции вычисления.
# Вычитаниеdef subtract(a, b):Условные операторы
result = a - b
return result# Умножение
def multiply(a, b):
result = a * b
return result# Деление
def divide(a, b):
result = a / b
return result
Функции операций готовы. Осталось написать простой код на питоне, который предоставит пользователю возможность выбора этих операций. Будем использовать уже знакомый нам ввод с клавиатуры и условные операторы. Условные операторы работают очень просто. Их название говорит само за себя.
Если условие истинно, например 2 == 2,
то выполняем один блок кода ,
иначе
выполняем другой блок кода
На месте двоек могут быть переменные, функции, возвращающие значения, строки и даже математические операции.
Посмотрим, как это выглядит в коде на примере проверки пароля. Предположим, что верный пароль: qwerty.
# спрашиваем у пользователя пароль
password = input('Введите пароль: ')# Проверяем, соответствует ли он задуманному нами
if password == 'qwerty':
print('Верно!')
else:
print('Неправильный пароль')
Введите пароль: йцукен
Неправильный пароль# спрашиваем у пользователя пароль
password = input('Введите пароль: ')# Проверяем, соответствует ли он задуманному нами
if password == 'qwerty':
print('Верно!')
else:
print('Неправильный пароль')
Введите пароль: qwerty
Верно!
Обратите внимание, что блоки кода также пишутся с отступами, как и в функциях. Двоеточие также обязательно.
Сразу же применим полученные знания к нашему калькулятору. Будем спрашивать у пользователя, какую операцию он хочет совершить, и, в зависимости от ввода, вызывать соответствующую функцию вычисления. Для начала просто выведем текст выбранной операции или сообщение, что такой операции не существует.
Следующим шагом заменим текст на вызов операции и объединим его с уже существующей логикой калькулятора.
# Подготовим сообщение для пользователя о доступных математических операциях.Собираем всё в единое целое
# В тройных кавычках можно хранить многострочный текст.
message = '''
Пожалуйста, введите символ операции, которую вы хотите совершить и нажмите Enter:+ : Сложение
- : Вычитание
/ : Деление
* : УмножениеВаш выбор:
'''# Запрашиваем у пользователя желаемое действие
operation = input(message)# Выводим сообщение о выбранной операции или что она отсутствует
if operation == '+':
print('Сложение')
elif operation == '-':
print('Вычитание')
elif operation == '/':
print('Деление')
elif operation == '*':
print('Умножение')
else:
print('Неизвестная операция')Пожалуйста, введите символ операции, которую вы хотите совершить и нажмите Enter:
+ : Сложение
- : Вычитание
/ : Деление
* : УмножениеВаш выбор:
+Сложение
Поместим всю логику вычислений внутрь функции, чтобы мы могли удобно обращаться к ней в коде скрипта.
def calculate(a, b, operation):
result = Noneif operation == '+':
result = sum(a, b)
elif operation == '-':
result = subtract(a, b)
elif operation == '/':
result = divide(a, b)
elif operation == '*':
result = multiply(a, b)
else:
print('Неизвестная операция')
return result
Также добавим функцию для запроса операции.
def ask_operation():
message = '''
Пожалуйста, введите символ операции, которую вы хотите совершить и нажмите Enter:+ : Сложение
- : Вычитание
/ : Деление
* : УмножениеВаш выбор:
'''# Запрашиваем у пользователя желаемое действие
operation = input(message)return operation
Теперь оборачиваем все этапы взаимодействия с калькулятором в условный корпус функции calculate.
def run_calculator():
# Запрашиваем данные
a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))# Запрашиваем тип операции
operation = ask_operation()# Производим вычисления
result = calculate(a, b, operation)# Выводим результат в консоль
print(f'Результат вычислений: {result}')
Проверяем!
run_calculator()
Введите первое число: 15
Введите второе число: 15Пожалуйста, введите символ операции, которую вы хотите совершить и нажмите Enter:
+ : Сложение
- : Вычитание
/ : Деление
* : УмножениеВаш выбор:
*
Результат вычислений: 225
Работает! Поздравляем, только что вы написали свой калькулятор.
или ** : Возведение в степень
Ваш выбор: &
Неизвестная операция
Результат вычислений: None
Ничего страшного не случилось, но и пользы никакой. Такой процесс, когда мы пробуем ввести в программу некорректные данные и наблюдать, как она реагирует, называется тестированием. Это отдельная профессия, но, так или иначе, элементарные тесты должен уметь делать любой программист-профессионал.
ЦиклыДавайте изменим поведение программы и позволим пользователю повторно выбрать требуемую операцию.
Для этого поместим код с запросом операции в цикл while. Принцип его во многом схож с условными операторами. Он проверяет условие на истинность и, если оно истинно, выполняет блок кода. После выполнения цикл повторяется — проверка условия и выполнение тела цикла. Таким образом, чтобы цикл завершился, нам нужно изменить проверяемое условие на ложное. Выход из цикла — это очень важный момент. Если не продумать логику выхода из цикла, он может продолжаться бесконечно, что не всегда желательно.
‘, ‘**’]
# Первый раз запрашиваем у пользователя желаемое действие
operation = input(message)
# Запускаем цикл, если операции нет в списке
while operation not in correct_operations:
print(‘Такая операция недоступна. Повторите попытку.’)
operation = input(message)
return operation
Вычисления не производятся до тех пор, пока не будет введена корректная операция. Тест пройден.
ЗаключениеСегодня легко найти калькулятор на любой вкус: встроенные в различные приложения, сайты с калькуляторами, обычные физические калькуляторы, разнообразные инженерные модификации, включая такие интересные калькуляторы, как python ipcalc, позволяющий выполнять расчёты IP-подсети. Но что может быть лучше, чем вещь, сделанная и модернизированная своими руками?
КалькуляторSig Fig | Сложение, вычитание, умножение и деление
Операция Sig Fig Calculator
Наш веб-сайт стал возможен благодаря показу онлайн-рекламы нашим посетителям.Пожалуйста, поддержите нас, отключив блокировщик рекламы.
Калькулятор акций
Оцените этот инструмент!
Operation Sig Fig Calculator
4,2 (83,53%) 17 голосов
Калькулятор Sig Fig позволяет решать уравнения со значащими цифрами и понимать расчеты с пояснениями и научной записью.
Как использовать калькулятор значащих цифр для деления и умножения?
- Выберите тип операции: умножение или деление.
- Введите каждое значение в калькулятор сиг инжир на этой странице
- Не беспокойтесь о порядке, это не важно для умножения (будьте осторожны с делением)
- Вы получите результат онлайн-уравнения
На заметку: Математика со значащими цифрами действительно отличается от обычного уравнения. Например, для умножения и деления ожидаемый результат должен содержать столько знаков fig, сколько значение операции содержит наименьшее количество.
Если вы хотите умножить 2,75 (3 значащие цифры) и 3 (1 знак fig)
Деление значащих цифр и метод умножения
Первая важная вещь, которую нужно понять, это то, что результат умножения или деления между двумя значащими цифрами получает только столько знаков fig, сколько член имеет наименьший значащий fig в операции. Вот пример:
- 204,75/13 = 15,75 с помощью вашего калькулятора
- Но для Sig Fig результат 16
- Потому что 13 получает только 2 значащую цифру и 15,75 получает 4
Чтобы узнать, сколько sig fig получает ваш номер, попробуйте наш точный инструмент Sig fig Calculator.
Как работает калькулятор Sig Fig для сложения и вычитания?
Для расчета сложения или вычитания с помощью Sig Fig выполните следующие шаги калькулятора:
- В кнопку «Тип операции» выберите сложение или вычитание
Знак появится между двумя свободными полями- Введите 2 значащих числа в поля в соответствии с вашей операцией
- Получить результат сложения/вычитания
Метод Sig Fig для сложения и деления
Для сложения и вычитания вам просто нужно выполнить обычный расчет и округлить результат в соответствии с числом Sig fig с наименьшими десятичными знаками.
Округлять только результат, а не промежуточные значения. Найдите здесь пример:
- Ваш расчет сиг-фига: «2335,595 + 123,25 – 532,3256»
- Обычный результат: 1926,5194
- Значение с наименьшими десятичными знаками равно 123,25 только с двумя десятичными знаками
- Итак, ваш результат sig fig равен 1926,52, потому что вы округлили его до 2 знаков после запятой.
Онлайн-калькуляторы
Поделиться в PinterestPinterestПоделиться в FacebookFacebookПоделиться в PocketPocketПоделиться в TwitterTwitterПоделиться в EmailEmailПоделиться в FlipboardFlipboardРабочие листы
Печатные формы
ГоловоломкиФутболки
Math Worksheets 900 Бесплатно!
Основные математические задания
Рабочие листы с дробями
Словесные задачи
Алгебра
Other Worksheets
Measurement & Conversions
Patterns and Puzzles
Color by Number
Holiday & Seasonal
Early Learning
Printables
Calculators
Math Worksheets by Grade
Worksheet News
Seriously, why would кто-нибудь хочет посмотреть на еще ДРУГОЙ онлайн-калькулятор? Что такого особенного в калькуляторах здесь? Это вопросы, которые задавали многие мои друзья, когда я объявил о своем проекте по созданию калькулятора здесь, на DadsWorksheets.
com. Я просмотрел много калькуляторов, обучающих математике миньонов и играющих со всеми вещами, связанными с рабочими листами, так что я знаю. Конечно, да, Интернет кишит калькуляторами всех мыслимых видов, и в некоторых случаях эти животные размножаются с шокирующей степенью мужественности.
Но вы их видели? Уродливый. Сбивает с толку. Плохой. Например, в 2005 году мне только что позвонили по модему на 56 кбит/с и попросили вернуть его PHP-формы и серверные CGI-скрипты.
Так что я был убежден. Что-то новое, современное и удивительное было нужно не только мне, но и поклонникам калькуляторов во всей сфере кибер-математики. Возникла потребность в калькуляторах, которые не просто факторизовали бы числа, а множили бы их фантастически. Калькулятор, который снова сделает простую факторизацию веселой. Калькулятор дробей, который был не просто классным, но наглядным и полезным одновременно. И калькулятор дробей в процентах, который был… Ну, ладно, это все равно не так интересно.
Тем не менее, я надеюсь, что эта подборка онлайн-калькуляторов окажется для вас полезной. Нажмите на одну из ссылок ниже, вставьте свои любимые числовые мелочи в некоторые из этих онлайн-калькуляторов и дайте мне знать, что вы думаете!
Калькулятор простой факторизации
Онлайн-калькулятор простой факторизации, который производит каноническую простую факторизацию, а также дерево цветовых факторов. Это удобный для проектора онлайн-калькулятор для демонстрации факторинга в классе.
Калькулятор факторизации простых чисел
Калькулятор факторизации
Этот классный калькулятор факторизации создает цветные анимированные наборы пар множителей для целых чисел и отлично подходит для демонстраций в классе.
Калькулятор факторинга
Градусы в радианы
Преобразователь градусов в радианы для преобразования угловых измерений из градусов в радианы и обратно.
Также показывает дополнительные и дополнительные углы (если применимо) для данного угла.
Градусы в радианы
Калькулятор процентов
Калькулятор процентов для преобразования дробей в проценты или процентов в дроби, а также преобразования дробей в десятичные числа.
Калькулятор процентного соотношения
Калькулятор уклона
Калькулятор уклона для построения графика двух точек на координатной плоскости и отображения уравнения пересечения наклона. Интерактивно изменяйте наклон, перехваты, подъем над пробегом и многое другое для обратных расчетов!
Калькулятор наклона
Калькулятор дробей
Онлайн-калькулятор дробей для сложения, вычитания, умножения и деления смешанных и неправильных дробей.
Калькулятор дробей
Калькулятор умножения
Анимированный калькулятор умножения, который показывает работу для более длинных задач на умножение.
Пытаетесь понять многозначное умножение? Этот визуальный инструмент поможет!
Калькулятор умножения
Калькулятор возраста
Графический калькулятор возраста, который показывает ваш хронологический возраст в контексте информации о сбережениях, выборах в США и многом другом!
Калькулятор возраста
Калькулятор деления в длину
Анимированный калькулятор деления в длину, показывающий работу и шаги, необходимые для деления многозначных чисел, остатков и многого другого.
Калькулятор длинного деления
Конвертер римских цифр
Вы, наконец, поймете римские цифры! Этот ВИЗУАЛЬНЫЙ конвертер римских цифр раз и навсегда развеивает путаницу, которую Цезарь и Август прокляли нас…
Конвертер римских цифр
Таймер обратного отсчета
Онлайн-таймер обратного отсчета со звуками.
Отлично подходит для занятий в классе, приготовления пищи или других целей, где вам нужно вести обратный отсчет до события.
Таймер обратного отсчета
Инструкции по использованию онлайн-калькуляторов
Каждый из онлайн-калькуляторов на этой странице содержит всплывающую подсказку, которая появится, если вы ничего не сделаете при запуске. Инструкции расскажут вам, какая информация необходима калькулятору для работы, и объяснят результаты, которые калькулятор генерирует в информационных частях дисплея. Каждый калькулятор также создает динамическую ссылку, которую вы можете сохранить, чтобы вы могли вернуться на страницу онлайн-калькулятора с точной проблемой, которую вы просматриваете, или чтобы вы могли переслать ее кому-то другому.
Зачем использовать онлайн-калькулятор вместо того, который лежит на вашем столе?
Или калькулятор в телефоне? Ну, все, что я могу сказать, дайте им попробовать. В отличие от других инструментов, которые вы можете найти в Интернете, калькуляторы здесь очень специализированы.
Каждый из этих онлайн-калькуляторов специально разработан для решения поставленной математической задачи и пытается обеспечить визуализацию. И каждый из них отзывчив и удобен для мобильных устройств.
Использование онлайн-калькуляторов с проектором или Smart Board
Все калькуляторы имеют кнопку «Масштаб», которая скрывает большую часть окружающей веб-страницы, что делает их удобными для проекторов или SmartBoard! Если вы находитесь в учебной среде с проектором или Smart Board, попробуйте нажать эту кнопку, чтобы увидеть, подходит ли презентация для вашего класса. Если вы сохраните ссылку, используя раздел в нижней части каждого из этих онлайн-калькуляторов, он запомнит эту настройку масштаба, когда вы вернетесь.
Скоро появятся новые онлайн-калькуляторы!
Ищете полезные инструменты для обучения математике в классе или дома? Вернитесь на домашнюю страницу или по этому URL-адресу, чтобы узнать о новых калькуляторах и других полезных инструментах математической войны.

