Как сделать приложение калькулятор на питоне

Обновлено: 19.05.2024

В этой статье сегодня мы узнаем, как создать простой калькулятор GUI, используя TKinter. Мы поймем весь код шаг за шагом.

В этой статье сегодня мы узнаем, как создать простой калькулятор GUI, используя TKinter. Мы поймем весь код шаг за шагом.

Начало работы с нашим калькулятором GUI, используя Tkinter

TKINTER предоставляет мощный объектно-ориентированный интерфейс для TK GUI Toolkit. Если TKINTER не установлен в вашем Python, откройте Windows CMD и введите следующую команду.

Tkinter Modelbox.

Параметры :

Варианты: Есть два варианта, которые можно использовать:

Структура калькулятора GUI с использованием Tkinter

Предположим, мы запустим программу, у нас есть метка в начале, а затем несколько кнопок в корневом окне. Мы можем разделить эту часть корневой окна с помощью детали E.g этикетка как одна часть, а затем кнопки в разную часть. Если мы поместим эти части в один кадр, то этот кадр станет родительским элементом. Это поможет нам упростить сложный дизайн.

После добавления кадров структура калькулятора будет похожа:

  1. Этикетка
  2. Рамка 1: 4 кнопки
  3. Рамка 2: 4 кнопки
  4. Рамка 3: 4 кнопки
  5. Рамка 4: 4 кнопки

Кнопки Python: Виджет кнопки используется для добавления кнопок в приложении Python. Эти кнопки могут отображать текст или изображения, которые передают цели кнопок. Вы можете прикрепить функцию или метод к кнопке, которая называется автоматически при нажатии кнопки.

1. Определение функций

Здесь мы начнем с кодировки для кнопок.

Мы определим первую функцию имени btn_1_isclicked () Отказ Мы даем это ущербное имя, так что нам становится легче понять, что функция на самом деле делает только что посмотрела на нее.

Здесь мы хотим, когда мы нажимаем на любую кнопку номера, мы хотим, чтобы это число было отображаться на нашей этикетке и хранить его в другой переменной, чтобы она была легко рассчитана.

Мы принимаем переменную глобально, чтобы избежать проблемы с именем переменной. В Python переменная, объявленная вне функции или в глобальном объеме, известна как глобальная переменная.

Это означает, что Глобальная переменная Доступ к доступу внутри или снаружи функции. Валь вот глобальная переменная. В приведенном выше коде мы создали Val в качестве глобальной переменной и определенной btn_1_isclicked () Чтобы распечатать глобальную валюту VAL и хранить его значение.

Выполните те же шаги для всех кнопок TKINTER.

2. Создание окна для нашего калькулятора GUI с помощью TKinter

Чтобы инициализировать TKinter, мы должны создать виджет TK CORT, который является окном с строкой заголовка и другие украшения, предоставляемые оконным менеджером.

Они предоставляются оконным менеджером. Он должен быть создан перед любыми другими виджетами.

Геометрия Метод устанавливает размер для окна и позиционирует его на экране. Первые два параметра являются ширина и высота окна. Последние два параметра являются координатами экрана x и y.

По установке root.Resizable до (0,0) программатор не сможет изменить размер окна. Лучше использовать root.resizable (0,0), потому что он сделает калькулятор на месте.

3. Настройка форматирования метки

Родитель ярлыка является корнем. Это означает, что он не будет ограничен на один кадр, но целое root Window. Затем мы поставим простой текст, который мы будем динамически изменяться по всему коду до цифровых кнопок, которые мы нажимаем, отображается на метке.

Якорь : Он контролирует, где текст расположен, если виджет имеет больше места, чем потребности в тексте. По умолчанию (виджет будет размещен в правом нижнем углу рамки).

TextVariable: Чтобы иметь возможность извлечь текущий текст из вашего въезда в виджете, вы должны установить эту опцию в экземпляр данных stringvar класса I.e

4. Упаковка кнопок на окне

Он использует прямоугольные зоны на экране для организации макета и обеспечить прокладку этих виджетов.

Рамка также может использоваться в качестве класса фундамента для реализации сложных виджетов.

Мы даем имя переменной к славе как BTNROW1 Отказ Синтаксис для кадра:

Затем мы упаковываем кадр. Повторите одни и те же шаги для трех трех кадров, вызывая корневое окно.

5. Добавление кнопок в наш калькулятор GUI с помощью TKinter

Виджет кнопки используется для добавления кнопок в нашем калькуляторе GUI, используя библиотеку Tkinter в Python. Эти кнопки могут отображать текст или изображения, которые передают цели кнопок. Вы можете прикрепить функцию или метод к кнопке, которая называется автоматически при нажатии кнопки.

Рельеф: С значением по умолчанию. Вы можете установить эту опцию для любого из других стилей, таких как: затонувший, жесткий, поднятый, плоский.

команда Является ли функция или метод, который будет называться, когда кнопка нажала. Здесь мы называем Команда, Функция, которую мы создали ранее, чтобы выполнить задачу.

Мы следуем тому же методу для других кнопок тоже.

Наконец, мы входим в MainLoop. Обработка событий начинается с этого момента. MainLoop получает события из оконной системы и отправляет их в виджеты приложений. Он прекращается, когда мы нажимаем на кнопку закрытия заголовка или вызовите Quit () метод.

Заключение

В этой статье мы покрыли кнопки TKINT, кадры, этикетки и его функциональные возможности, окна TKinter, входные коробки и то, как все эти все могут быть собраны для создания приложений GUI. Понимая код, мы добились успеха в создании рабочего калькулятора GUI с использованием библиотеки TKinter и его виджетов. Надеюсь, эта статья поможет.

Язык программирования Python является отличным инструментом для обработки чисел и математических выражений. На основе этого качества можно создавать полезные программы.

В данном руководстве вам предлагается полезное упражнение: попробуйте написать простую программу командной строки для выполнения вычислений. Итак, в данном руководстве вы научитесь создавать простейший калькулятор в Python 3.

В руководстве используются математические операторы, переменные, условные выражения, функции.

Требования

Для выполнения руководства нужно установить Python 3 на локальную машину и развернуть среду разработки. Все необходимые инструкции можно найти здесь:

  • Настройка локальной среды разработки для Python 3 в CentOS 7
  • Настройка локальной среды разработки для Python 3 в Windows 10
  • Настройка локальной среды разработки для Python 3 в Mac OS X
  • Настройка локальной среды разработки для Python 3 в Ubuntu 16.04

1: Строка ввода

Для начала нужно написать строку ввода, с помощью которой пользователи смогут вводить данные для вычислений в калькуляторе.

Для этого используйте встроенную функцию input(), которая принимает сгенерированный пользователем ввод с клавиатуры. В круглых скобках функции input() можно передать строку. Пользовательскому вводу нужно присвоить переменную.

В данной программе пользователь сможет вводить два числа. Запрашивая ввод, нужно добавить пробел в конце строки, чтобы отделить ввод пользователя от строки программы.

number_1 = input('Enter your first number: ')
number_2 = input('Enter your second number: ')

Прежде чем запустить программу, сохраните файл. К примеру, назовём программу calculator.py. теперь можно запустить программу в окне терминала в среде разработки с помощью команды:

Программа предложит вам ввести два числа:

Enter your first number: 5
Enter your second number: 7

На данный момент калькулятор принимает любые входные данные, не ограничиваясь числами: слова, символы, пробелы, даже enter. Это происходит потому, что функция input() принимает данные как строки и не знает, что в данном случае нужны только числа.

Чтобы программа могла выполнять математические вычисления, она не должна принимать никаких данных, кроме чисел.

В зависимости от предназначения калькулятора, программа может преобразовывать строки функции input() в целые числа или в числа с плавающей точкой. В данном случае целые числа подходят больше. Функцию input() нужно передать внутри функции int(), чтобы преобразовать ввод в целое число.

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

Теперь попробуйте ввести два целых числа:

Enter your first number: 23
Enter your second number: 674

Все работает без ошибок. Однако если вы введёте символы, пробелы или буквы, программа вернёт ошибку:

Enter your first number: hello
Traceback (most recent call last):
File "testing.py", line 1, in <module>
number_1 = int(input('Enter your first number: '))
ValueError: invalid literal for int() with base 10: 'hello'

Итак, вы написали строку для ввода данных в программу.

Примечание: Попробуйте самостоятельно преобразовать входные данные в числа с плавающей точкой.

2: Добавление операторов

Теперь нужно добавить четыре базовых оператора: + (сложение), – (вычитание), * (умножение) и / (деление).

Программу лучше разрабатывать постепенно, чтобы иметь возможность протестировать её на каждом этапе.

Сначала добавьте оператор сложения. Поместите два числа в print, чтобы калькулятор отображал результат.

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))
print(number_1 + number_2)

Запустите программу и попробуйте сложить два числа:

Enter your first number: 8
Enter your second number: 3
11

Теперь можно немного усложнить программу. Пусть кроме результата калькулятор также отображает числа, введенные пользователем.

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))
print('<> + <> = '.format(number_1, number_2))
print(number_1 + number_2)

Снова запустите программу и попробуйте ввести какие-нибудь числа:

Enter your first number: 90
Enter your second number: 717
90 + 717 =
807

Теперь пользователь сможет убедиться, что ввел правильные числа.

На данном этапе можно добавить остальные операторы, используя такой же формат:

Теперь калькулятор может выполнять математические вычисления при помощи операторов +, -, * и /. Далее нужно ограничить количество операций, которые программа может выполнить за один раз.

3: Добавление условного оператора

Добавьте в начало программы calculator.py небольшое описание с перечнем доступных операций. Выбрав один из операторов, пользователь сообщит программе, что именно ей нужно будет делать.

'''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
'''

Примечание: На самом деле здесь можно использовать любые символы (например, 1 для сложения, b для вычитания и так далее).

Передайте строку внутри функции input() и присвойте переменную значению ввода (к примеру, это будет переменная operation).

operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')
number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))
print('<> + <> = '.format(number_1, number_2))
print(number_1 + number_2)
print('<> - <> = '.format(number_1, number_2))
print(number_1 - number_2)
print('<> * <> = '.format(number_1, number_2))
print(number_1 * number_2)
print('<> / <> = '.format(number_1, number_2))
print(number_1 / number_2)

В эту строку пользователь может ввести любой из предложенных символов, но ничего не произойдёт. Чтобы программа работала, нужно добавить условный оператор. Оператор if будет отвечать за сложение, три оператора elif – за остальные операции; оператор else будет возвращать ошибку, если вместо предложенных операторов пользователь ввёл другой символ.

operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')
number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))
if operation == '+':
print('<> + <> = '.format(number_1, number_2))
print(number_1 + number_2)
elif operation == '-':
print('<> - <> = '.format(number_1, number_2))
print(number_1 - number_2)
elif operation == '*':
print('<> * <> = '.format(number_1, number_2))
print(number_1 * number_2)
elif operation == '/':
print('<> / <> = '.format(number_1, number_2))
print(number_1 / number_2)
else:
print('You have not typed a valid operator, please run the program again.')

Итак, сначала программа предлагает пользователю ввести символ операции. Затем она запрашивает два числа. После этого она отображает пользовательский ввод и результат вычислений. Например, пользователь вводит *, затем 58 и 40.

Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
*
Please enter the first number: 58
Please enter the second number: 40
58 * 40 =
2320

Если же на первый запрос программы пользователь введёт символ %, он получит ошибку.

На данный момент программа выполняет все необходимые вычисления. Однако чтобы выполнить другую операцию, программу придётся перезапустить.

4: Определение функций

Чтобы программу не пришлось перезапускать после каждого обработанного примера, нужно определить несколько функций. Для начала поместим весь существующий код в функцию calculate() и добавим в программу ещё один слой. Чтобы программа запускалась, нужно добавить функцию в конец файла.

Создайте ещё одну функцию, состоящую из условных операторов. Этот блок кода позволит пользователю выбрать: продолжить работу с программой или завершить её. В данном случае операторов будет три: один if, один elif и один else для обработки ошибок.

Пусть функция называется again(). Добавьте её в конец блока def calculate():

Также можно устранить чувствительность к регистру: буквы y и n должны восприниматься так же, как Y и N. Для этого добавьте функцию строки str.upper():

Теперь нужно добавить функцию again() в конец функции calculate(), чтобы программа запускала код, который спрашивает пользователя, хочет ли он продолжить работу.

Запустите программу в терминале с помощью команды:

Теперь программу не нужно перезапускать.

5: Дополнительные действия

Также можно добавить в программу больше функций для обработки ошибок. К примеру, программа должна продолжать работу даже если пользователь вводит слово вместо числа. На данный момент это не так: программа выдаст пользователю ошибку и прекратит работу.

Кроме того, если при выборе оператора деления (/) пользователь выбирает знаменатель 0, он должен получить ошибку:

ZeroDivisionError: division by zero

Программа ограничена 4 операторами, но вы можете расширить этот список:

Также в программу можно добавить операторы цикла.

Существует много способов для настройки обработки ошибок и улучшения каждого проекта. При этом всегда важно помнить, что не существует единственно правильного способа решить ту или иную проблему.

Заключение

Теперь вы знаете, как написать простейший калькулятор. После выполнения руководства вы можете самостоятельно добавить новые функции программы.


Калькуляторы – это одни из самых простых приложений, которые идут по умолчанию в каждой версии Windows. Со временем их расширял для поддержки научных и программных режимов, однако на фундаментальном уровне все они одинаковы.

В этой небольшой статье мы реализуем рабочий стандартный калькулятор при помощи PyQt5. Здесь используется логика из трех частей, включая короткий стек, оператор и состояние. Базовые операции с памятью также используются.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Пока это реализовано под Qt, вы можете легко конвертировать логику в работу для работы в оборудовании при помощи MicroPython или Raspberry Pi.

Создаем простой калькулятор в PyQt5

Исходный код

Затем установить все необходимые зависимости при помощи:

После этого вы можете запустить калькулятор при помощи:

Ознакомьтесь с тем, как работает код в путеводителе.

Пользовательский интерфейс

Мы используем макет сетки, который используется для позиционирования всех кнопок калькулятора. Каждая кнопка занимает одно место в сетке, кроме знака равно, который занимает две клетки.

Создаем простой калькулятор в PyQt5

Каждая кнопка определена сочетанием горячих клавиш на клавиатуре для вызова сигнала .pressed. Например, 3 для кнопки 3. Действия в каждой кнопке определены кодом и связаны с этим сигналом.

Действия

Чтобы кнопки делали что-либо, нам нужно связать их с определенными обработчиками. Определенные связи показаны сначала внизу, затем подробно описанные обработчики.

Сначала мы подключаем цифровые кнопки к своим обработчикам. В Qt Designer мы назвали все кнопки, используя стандартный формат, так, в pushButton_nX литера Х является числом. Это упрощает их итерацию и подключение.

Мы используем оберточную функцию на сигнале для передачи дополнительной информации с каждым запуском. В нашем случае, введенное число от 0 до 9 используя функцию range.

В этом уроке мы создадим на основе языка программирования Python свое первое программное обеспечение с .exe файлом.

Введение в GUI

GUI (Graphical user interface) - графический интерфейс пользователя. С этого понятия мы и начнем. На самом деле никаких скрытых смыслов здесь нет и GUI - это графическое представление для всех ваших программ.

То есть вы могли бы запустить программу из командной строки и получить результат в том же самом виде. Но чтобы ваш код взаимодействовал с пользователем, необходим интерфейс для взаимодействия.

В "питоне" есть много модулей, которые вы можете импортировать и на его основе создавать свой графический интерфейс. Мы будем использовать Tkinter - встроенный GUI для Python. Он устанавливается вместе "питоном".

Здесь Tk() относится к классу в модуле Tkinter, который мы сохраняем, инициализируя в top. Label - это метод для печати текста, Entry - для создания пустой записи, Button - для создания кнопки.


pack - это ключ для упаковки всего в макет. mainloop сохраняет все видимым, пока вы не закроете графический интерфейс.

Создаем собственный калькулятор

Выше мы увидели простой графический интерфейс с кнопкой и полями. Приступим к созданию простого калькулятора Python.

Сразу скажу, что стиль кода, названия переменных очень важны и существует n-способов создания кода, но здесь мы только хотим понять суть создания ПО, а не выучить все правила правильного написания кода.


Создание GUI

Прежде чем перейти к коду, мы создадим графический интерфейс для нашего приложения-калькулятора. Для более легкого понимания мы будем использовать только одну кнопку и 4 строчки для ввода.

Воспользуемся написанным кодом выше и возьмем оттуда label, entry и button.

Создание функции

В нашем случае сразу после ввода 2 чисел и указания операции между ними должен быть показан ответ.

Начнем с кнопки Submit (см. изображение калькулятора выше).

Нам нужно дать команду кнопке, создать функцию, которая предназначена для этого.

Называем функцию process, которая после нажатия кнопки, простыми словами, обращается за данными к нашим строкам ввода и получает значения, введенные пользователем. Полученные данные мы сохраняем в number1, number2, operator.

Процесс вычислений

На этом этапе нам нужно обработать ввод, полученный от пользователя. По умолчанию полученное значение является строкой.

Для того, чтобы преобразовать тип данных мы строковую переменную оборачиваем в int.

Тем не менее, есть еще одна проблема - получение значения оператора (например, + - * /) для работы.

На самом деле решение довольно простое - использовать условный оператор if и делать вычисления внутри условий.

Строка в Python обозначается как " " или ' ', то есть здесь в if мы проверяем строковый оператор, полученный от пользователя и сохраняем результат в переменной answer.

Код целиком будет выглядеть так:

Вы успешно написали код нашего калькулятора.

Обработка исключений

Заголовок звучит слишком техническим? Определенно нет, не переживайте. Мы всегда должны учитывать много разных моментов.

Предположим, вы сделали этот калькулятор и показали его другу. Друг вместо того, чтобы вводить целое число вводит буквы, которые должны быть там где цифры. Python выдает ошибку и сразу останавливается.

Обработка исключений считается простым процессом. Давайте посмотрим, как это сделать в нашей программе:

Создание EXE

Вы создали программу на Python, которая полностью работаете после отладки ошибок. Но есть одна проблема - что если вы хотите поделиться своим кодом Python с другими? У них должен быть установлен Python, но часто это просто невозможно. Кроме того вы можете не иметь делания раскрыть свой код и тогда лучше всего создать *.exe - файл.

Чтобы создать исполняемую *.exe версию или Apk (для Android) необходимо "заморозить" (freeze) ваш код.

Есть много способов "заморозить" ваш код, но я бы предложил использовать Pyinstaller.

Шаг 1

Шаг 2

Перейдите в папку, в которой находится код, нажмите SHIFT + правую клавишу мыши и далее "Открыть в командной строке". Т.е. либо "open in command prompt" или "power shell" в зависимости от вашей версии ОС.


Добавляем свой значок для EXE-файла и помещаем всё в один файл с помощью второй команды.


Исходную программу на Python и *.exe файл вы можете скачать ниже:

На этом мы заканчиваем урок по разработке своего первого программного обеспечения на Python.

Читайте также: