Как сделать калькулятор в python в консоли
Он принимает строковый ввод, например '1+1' вместо num1 = 1, num2 = 2, operation = '+' или что-то в этом роде.
Этот код довольно прост, я имею в виду, что он не использует класс, какие-либо импорт и т. д. (хорошо, он может просто использовать 5 основных операций в математике, но это можно продлить), и хотя это легко, найти его в Интернете . Вот почему я хотел поделиться этим. Если у вас есть идеи, поделитесь ими. Я здесь довольно новый, и я не использовал Python очень долго, поэтому есть много вещей, которые нужно добавить, я думаю. (Извините за мой ужасный английский, я немецкий)
3 ответа
В дополнение к другим очень хорошим ответам:
Организация и тесты кода
Хорошо отделить логику ввода /вывода от результатов логических вычислений. В вашем случае у вас может быть функция, принимающая выражение в виде строки и возвращающая число.
Это делает ваш код более понятным, более простым для повторного использования и более проверяемым.
Кроме того, хорошая привычка поместить ваш код на самом деле, вызывая логику if __name__ == "__main__": guard .
Я также воспользовался этой возможностью, чтобы удалить молчащий улов исключений, из-за чего трудно понять, когда возникает ошибка.
Кстати, голые, за исключением (без явного исключения типа исключения) и игнорируемых исключений, обычно нахмурились, поскольку они делают отладку очень болезненной.
Нейминг
Ваши имена функций не очень хороши. Вы можете определить is_digit , get_number , ---- +: = 4 =:. + ----
Упростить perform_operation функция
Лучшая структура данных для проверки, которую вы хотите выполнить, - это набор. Вы могли бы написать что-то вроде:
Упростить DIGITS = set('0123456789') def is_digit(var): return var in DIGITS
Лучшая структура данных для логики, которую вы хотите выполнить, - это операторы сопоставления dictionnary для функций.
Упростить truediv
Использование распаковки кортежей
Как уже говорилось, вы можете использовать def get_number(varstr): s = "" for c in varstr: if not is_digit(c): break s += c return (int(s), len(s)) для вызова number1, end_number1 = get_number(expr) только один раз.
На этом этапе код выглядит следующим образом:
Вы устанавливаете negate в False в самом начале и убедитесь, что вы возвращаете его обратно на False на каждой итерации, чтобы следующая итерация работает отлично. Было бы яснее инициализировать его False в начале итерации. Вы также можете установить его в negate .
Реорганизация в основной функции
В настоящий момент код анализирует два числа и операцию, вычисляет операцию, преобразует результат в строку, подлежащую анализу на следующей итерации. Таким образом, каждый временной результат преобразуется из целого числа в строку, затем целое. Это приводит к проблемам, когда результат не может быть преобразован назад и вперед - например, когда вы выполняете деления с нецелым результатом. Также это может быть оптимизировано со следующей логикой:
получить первое число и сохранить его как текущий номер
на каждой итерации: получите операцию и следующий номер. Вычислите операцию и сохраните результат как текущий номер, который будет повторно использоваться при следующей итерации.
Многие программисты стараются изучать языки программирования с помощью написания достаточно простых программ. Один из вариантов – написание калькулятора. Конечно, можно посчитать в отладчике Python или запустив консоль. Но гораздо лучше написать на python свой калькулятор с графическим интерфейсом.
Считаем в консоле
Чтобы посчитать математические выражения можно запустить консоль. Запустить python. После этого набираем математические выражения и получаем ответ. Для этого даже не надо уметь программировать.
Делаем простой калькулятор
Лучше всего закреплять свои знания по программированию с помощью написания простых программ. Таких приложений можно придумать много – календарь, программа для хранения заметок, получение прогноза погоды.
Можно написать программу, которая делает скриншоты и сохраняет полученные изображения в папку. В любом случае, надо выбрать какое-нибудь не сложное задание, чтобы не закопаться в нем. Потом его можно будет расширить и сделать по-настоящему полезное приложение.
В нашем случае мы разберем, как создать простой графический калькулятор на Python 3. Для реализации графического интерфейса воспользуемся стандартным пакетом Tkinter. Он входит в состав Python 3. Соответственно, если у вас установлен Python, то дополнительно не надо ничего устанавливать.
В первых строках файла calculator.py подключаем библиотечные функции:
- Tkinter для графического интерфейса;
- Decimal для вычислений с большей точность, так как точности float не достаточно.
Импорт библиотек и исходные данные
Вычисление результата
Функция calculate получает из списка stack операнды и операцию которую над ними надо произвести. Результат отображается в надписи label. Получать из списка строки будем с помощью метода pop.
Обработка нажатия
В функции click выполняется обработка нажатой клавиши. В качестве ее аргумента передается текст, отображаемый на кнопке, которую нажали. Хотелось бы хранить вводимое значение прямо в надписи, а не создавать для этого отдельную переменную. Но так не получается из-за алгоритма работы. После того как посчитан результат, он записывается в надписи. При попытке после этого начать вводить новое число, оно бы дописывало прежний результат.
В списке с операторами и командами для калькулятора не обязательно их будет 3. Но при обработке с помощью метода pop, будут рассматриваться 3 последних введенных значения. А после проведения расчета список очистится. Далее в него добавляется полученный результат, на случай если пользователь нажмет на калькуляторе клавишу операции сразу, а не будет вводить новое число.
Внешний вид
Теперь займемся оформлением внешнего вида калькулятора и зададим обработку нажатия кнопок. Создаем надпись для вывода набираемых значений и результатов. В цикле создаем кнопки. Расположение кнопок и надписи осуществляется в табличном виде с помощью упаковщика grid. И в завершении запускаем цикл обработки событий mainloop.
У надписи выставлена ширина 35, для того, чтобы оформление кнопок подстраивалось под надпись. И в результате кнопки при этом значении лучше выглядят.
Для того, чтобы кнопки правильно работали, пришлось для каждой из кнопок создать свою функцию с помощью lambda.
По аналогии приведенного кода python калькулятора можно сдель, допустим, календарь. Для этого надо будет запрашивать текущую дату у операционной системы. Открывать нужный месяц, рассчитывать какие числа выпадут на понедельники, какой год високосный. Сделать возможность менять год и месяцы.
Калькуляторы – это одни из самых простых приложений, которые идут по умолчанию в каждой версии Windows. Со временем их расширял для поддержки научных и программных режимов, однако на фундаментальном уровне все они одинаковы.
В этой небольшой статье мы реализуем рабочий стандартный калькулятор при помощи PyQt5. Здесь используется логика из трех частей, включая короткий стек, оператор и состояние. Базовые операции с памятью также используются.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Пока это реализовано под Qt, вы можете легко конвертировать логику в работу для работы в оборудовании при помощи MicroPython или Raspberry Pi.
Исходный код
Затем установить все необходимые зависимости при помощи:
После этого вы можете запустить калькулятор при помощи:
Ознакомьтесь с тем, как работает код в путеводителе.
Пользовательский интерфейс
Мы используем макет сетки, который используется для позиционирования всех кнопок калькулятора. Каждая кнопка занимает одно место в сетке, кроме знака равно, который занимает две клетки.
Каждая кнопка определена сочетанием горячих клавиш на клавиатуре для вызова сигнала .pressed. Например, 3 для кнопки 3. Действия в каждой кнопке определены кодом и связаны с этим сигналом.
Действия
Чтобы кнопки делали что-либо, нам нужно связать их с определенными обработчиками. Определенные связи показаны сначала внизу, затем подробно описанные обработчики.
Сначала мы подключаем цифровые кнопки к своим обработчикам. В Qt Designer мы назвали все кнопки, используя стандартный формат, так, в pushButton_nX литера Х является числом. Это упрощает их итерацию и подключение.
Мы используем оберточную функцию на сигнале для передачи дополнительной информации с каждым запуском. В нашем случае, введенное число от 0 до 9 используя функцию range.
Как написать калькулятор на C++
Чтобы сделать простой калькулятор в программировании на C++, который выполняет четыре основных математических операции ( сложение, вычитание, умножение и деление ) в зависимости от выбора пользователя, используйте регистр переключения, чтобы определить оператор ввода для выполнения требуемого вычисления, а затем отобразить результат, как показано здесь в следующей программе.
Программный код C++ для создания простого калькулятора
Ниже приводится простая программа на C++, которая представляет собой программу на основе меню, основанную на простых вычислениях, таких как сложение, вычитание, умножение и деление по выбору пользователя:
Когда вышеупомянутая программа C++ компилируется и выполняется, она даст следующий результат:
Сделать простой калькулятор на C
Для создания простого калькулятора в C-программировании, который выполняет четыре основные математические операции, используйте регистр переключателя, чтобы определить оператор ввода для выполнения необходимых вычислений, а затем отобразить результат.
Код программирования на С, чтобы сделать простой расчет
Ниже приводится простая программа на языке C, которая представляет собой программу на основе меню, основанную на простых вычислениях, таких как сложение, вычитание, умножение и деление по выбору пользователя:
Когда вышеупомянутая программа c скомпилирована и выполнена, она выдаст следующий результат:
Создать-программу калькулятор в консоли на Java
Для создания простого калькулятора в Java Programming, который выполняет четыре основных математических операции: сложение, вычитание, умножение и деление, используйте регистр переключения, чтобы определить оператор ввода для выполнения необходимых вычислений, а затем отобразить результат на экране, как показано на следующая программа.
Программный код Java для вычисления
Ниже приводится простая Java-программа, которая представляет собой программу на основе меню, основанную на простых вычислениях, таких как сложение, вычитание, умножение и деление по выбору пользователя:
Когда вышеуказанная Java-программа компилируется и выполняется, она выдаст следующий вывод:
Написание калькулятора на Python
Сделать простой калькулятор в Python для выполнения основных математических операций, таких как сложение, вычитание, умножение и деление двух чисел, введенных пользователем. Чтобы сделать калькулятор на python, сначала предоставьте 5 вариантов пользователю, пятый вариант для выхода. После предоставления всех пяти опций пользователю, попросите пользователя ввести его / ее выбор и выполнить желаемую операцию, как показано в программе, приведенной ниже.
Код программирования Python для создания калькулятора
Следующая программа на Python предоставляет пользователю опции и просит ввести его / ее выбор для выполнения и показать желаемый результат в качестве вывода:
Вот несколько примеров запуска вышеприведенной программы на Python, чтобы показать, как сделать простой калькулятор.
Это начальный вывод, дающий пользователям некоторое количество вариантов (5 вариантов), чтобы выбрать любой из этих 5 вариантов.
Теперь давайте сначала попробуем выполнить задачу сложения, выбрав или введя 1 в качестве ввода, а затем введите любые два числа, скажем 1 и 2, а затем нажмите клавишу ввода, чтобы проверить это:
Теперь давайте снова запустим программу калькулятора, чтобы проверить это время на вычитание двух чисел, скажем, 2 и 1, как показано в следующем примере:
Снова повторно запустите ту же программу, и на этот раз предоставьте 4 в качестве ввода для проверки задачи деления и введите два числа, то есть первое число как 20 и второе число как 3, затем нажмите клавишу ввода, как показано здесь в следующем примере выполнения:
Вот та же самая программа, написанная и работающая на оболочке Python. Это первый снимок:
Ниже приведен второй снимок:
Вот третий снимок:
Читайте также: