Как зациклить калькулятор в python
(калькулятор) Зацикливание программы через вопросы python
Помогите пожалуйста с кодом, как я могу сделать нечто вроде того, когда программа спрашивает меня, хочу ли я продолжить выполнять действие, если да, то продолжаю, если нет, то она возвращается к изначальному вопросу и спрашивает, что я хочу сделать, умножить, делить и т.д https://code.sololearn.com/cNZRTIcw3tV8/?ref=app
В Sololearn такого сделать не возможно. Тут ввод спрашивается в начале выполнения программы. Можно установить нормальную прогу на ПК, там можно будет. Можно например прога от JetBrains (вроде бы называется PyCharm), и можно попробовать Visual Studio от Microsoft. Это я самые нормальные назвал. А так можешь что-нибудь другое поискать.
Уточняй на каком языке требуется помощь, попробуй хоть чтото сделать самостоятельно. Тогда тебе охотнее помогут
Извиняюсь, пришлось написать код с нуля, однако теперь он тут
Вопрос в другом) код на компе есть, все хорошо) я хочу его зациклить
while True: _if input(‘Do you want to stop?: ‘) == ‘yes’: __break _while True: __if input(‘Do you want to continue?: ‘) == ‘yes’: ___pass __else: ___break
Создаем продвинутый калькулятор на Python с Tkinter
Здравствуйте! В этой публикации я хочу рассказать Вам, как сделать продвинутый калькулятор на Python 3 с Tkinter.
Итак, импортируем модули, которые нам понадобятся для нашей программы.
Библиотека tkinter нам необходима для создания окна, грубо говоря.
Модуль math нам нужен для математических операций.
Следующими двумя строками мы создаем окно и даем ему имя.
Создаем список с именами будущих кнопок калькулятора. Я выбрал все самые интересные функции, чтобы продемонстрировать, как их реализовать.
Следующим отрезком кода мы создаем кнопки для нашего калькулятора.
В каждом калькуляторе есть, так называемое поле ввода, в которое пользователь вводит нужные данные для программы. Это могут быть цифры, функции и математические операции. Их можно вводить, как с клавиатуры, так и при нажатии на кнопку в калькуляторе.
Пример 1. Я нажимаю на кнопку «2» в калькуляторе и в этом поле ввода, отображается цифра 2.
В Python Tkinter поле ввода называется Entry, а, например, в Java Script — input.
Мы подошли к основной задаче калькулятора — его функциям и логике.
До этого момента нами было создан внешний вид программы. Если бы Вы попробовали запустить ее и нажать на кнопку, Вам бы выскочила ошибка, ведь у нас вовсе нет функций калькулятора.
Приступим, пропишем нашему калькулятору логику и способность считать.
В этом блоке кода мы используем функцию eval — это, если можно так сказать, компилятор внутри компилятора. Она будет считать в нашей программе.
По сути, мы обрабатываем функцию, что сработает при нажатии на кнопку «=».
Создаем функцию очищения поля ввода. Она будет срабатывать при нажатии на кнопку «C».
Следующая функция — число pi. При нажатии на кнопку «П» программа выведет нам 3.14159265359, то есть число Pi. Вот тут нам и пригодилась библиотека math.
Функция выхода из программы. При нажатии на кнопку «Exit» окно Tkinter будет уничтожено и процесс остановлен. В этой функции нам нужна была библиотека sys.
Функция возведения в степень. Нужно ввести число, которое нужно возвести в степень. Далее программа выводит **. В Python этот символ означает возведение в степень 2**6 (возведение 2 в степень 6). Мы используем для счета в программе eval, а значит можно выполнить это так же, как и в Питоне. Ну и в конце мы вводим необходимую степень.
Пример 3. Нам нужно 3 возвести в 5 степень. Вводим число 3, нажимаем на кнопку «xⁿ» (3**. ) и вводим необходимую степень, — 5 (3**5). Нажимаем на кнопку «=» и получаем ответ 243.
Опишу сразу две функции, так, как они идентичны.
Функция sin x и cos x.
Все просто, при нажатии на клавишу sin или же cos мы получаем синус или косинус по данному числу.
Следующие две функции — скобки ) и (.
При нажатии на кнопку «)» мы получаем ), аналогично поступаем со второй функцией.
Функция получения факториала из данного числа.
Функция извлечения корня квадратного их данного числа.
Функция, которая отвечает за очищение поля ввода при нажатии на кнопку «=».
И последняя строка нашего кода — это «закрытие» окна tkinter.
Большое спасибо за прочтение данной публикации. Надеюсь она Вам была полезна.
Простой калькулятор на Python
В этой статье мы разберём самый простой калькулятор на языке программирования Python, тут стоит сказать, что эта статья подойдёт совсем новичкам, так как сделаем обычный консольный калькулятор, профессиональным или просто опытным она не нужна.
Ещё можете посмотреть статью «Парсер страниц на Python», тоже очень полезна новичкам.
Консольный калькулятор на Python:
Как говорилось выше, мы сделаем легкий калькулятор на Python, и для этого нам нужно создать только один Python файл, я его назову «main.py».
Внутри него создадим функцию которая будет за всё отвечать, вот примерно так:
То есть мы создаём функцию где происходит вся логика, внутри неё первым делом выводим сообщение, что мы открыли калькулятор.
Потом запускаем бесконечный цикл и в нём даём выбрать действие, тут как обычно, то есть, если выбираем знак плюса, то будем складывать и т.д..
После идёт проверка команд, если выбрать кнопку «q», то выходим из программы, если же это арифметический знак, то вводим два числа, кладём их в переменные в формате числа с плавающей точкой.
Потом проверяем конкретный знак, зависимо от него и делаем действии, выводим на экран, самое интересное это с делением, мы делаем проверку, если делитель, то есть «y», равен нулю то тогда не будем делить.
Последние что осталось это объявить переменную, вот:
Оконный калькулятор на Python с Tkinter
В этой статье мы разберём как сделать калькулятор на Python с использованием библиотеки Tkinter, для создания графического интерфейса или оконного приложения.
Также можете посмотреть прошлую часть где мы познакомились с этой библиотекой, статья называется «Создание графического интерфейса в Python», думаю будет интересно.
Калькулятор на на Python с Tkinter:
Перед тем как начать работать, нужно установить все нужные компоненты, но нам нужно скачать только Tkinter, для этого как всегда для Python прописываем команду PIP.
После того как скачали можете приступать к работе, для этого переходим в ваш файл, где вы будите хранить весь код.
Первым делом нужно импортировать нужные компоненты и создать переменные которые нам пригодятся:
Первым делом мы тут как всегда всё импортируем, потом создаём приложение и задаём ему заголовок, потом создаём кортеж кнопок, где каждый картеж, это отдельная строчка кнопок в приложение.
последние мы создаём переменную activeStr, которая отвечает за наспанные числа в строчки ввода, и вторая переменная это список, чисел и команда которые нужно будет выполнить.
Дальше создадим функцию которая будет считать получившийся результат, вот как она будет выглядеть:
Как видите в начале функции мы всё раскладываем на числа которые мы получаем и знаки на которые мы нажали, потом всё зависимо от от знака мы считаем вмести эти два числа и в вставляем это в нашу строку ввода.
Теперь перейдём к функции которая будет обрабатывать клик на кнопки там всё гораздо интереснее на мой взгляд.
В начале мы тут проверяем, а нажата ли кнопка CE, если да, то тогда всё удаляем и выводим ноль, иначе если были нажаты цифры, то добавляет это всё в поле ввода, если точка нажата, то тоже добавляем в поле.
Иначе проверяем если у нас stack больше или равен двум, то считаем что у нас получилось и выводим число в поле, которое получилось и если не было нажата равно, то вставляем это число в stack.
Иначе опять проверяем не было ли нажата равно, если нет, то всё так же добавляем значения в список stack.
Последние что нам осталось, так это отрендарить всё приложение, это будет не очень cложно.
По сути мы тут будем создавать таблицу но вначале делаем поле, и потом уже саму таблицу, после того как мы это сделали, первое создаём кнопку «CE», дальше рендрим остальные кнопки, по четыре столбца, это важно, и последние задаём конфигурации для строчки и столбцов, видь как вы поняли по сути мы работаем с таблицей.
Последние запускаем событие цикл который будет отслеживать события нажатия на кнопки, или если по простому то рендерим приложение.
Вывод:
В этой не большой статье вы прочитали как сделать калькулятор на Python с использованием библиотеки Tkinter, думаю вам было интересно, но рекомендую вам самим написать этот код, и поэкспериментировать над ним, чтобы всё ещё лучше понять, как он работает.
Простой GUI калькулятор на Python #1. Создание дизайна приложения
В этой серии статей я научу вас делать простой кроссплатформенный десктопный калькулятор. Здесь не будет тригонометрических функций, процентов, интегралов и других полезных вещей. Вы сможете добавить их по своему желанию.
Мы будем использовать язык Python, фреймворк Qt, библиотеку PySide6, сразу установим её:
pip install PySide6
Qt Designer
Создавать интерфейс мы будем в приложении Qt Designer. Его можно скачать отдельно или найти в папке установленного PySide. Для этого перейдем по пути:
Создаем Main Window, т.е. главное окно приложения.
Сразу убираем ненужные menubar и statusbar
Название приложения можно изменить в свойстве главного окна windowTitle
Элементы калькулятора
Перетащим нужные элементы в интерфейс. В нашем калькуляторе будет поле ввода Line Edit.
Label с временным выражением над этим полем ввода.
Grid Layout для кнопок.
Просто закинем эти элементы и выберем «Lay Out Vertically» для центрального виджета.
Теперь закинем кнопки в Grid Layout, у меня будет 4 колонки и 5 рядов. Чтобы скопировать и вставить элемент, можно перетащить его с зажатой клавишей Ctrl.
Поставим текст во все кнопки. Для Backspace мы позже поставим иконку.
Запишем 0 в Line Edit и выберем правое горизонтальное выравнивание для текста.
Нам нужно сделать так, чтобы пользователь не мог вводить что попало в это поле, чтобы он мог его только читать. Для этого существует свойство readOnly
Укажем максимальную длину в 16 символов, как в калькуляторе Windows.
Запишем в лейбл какое-нибудь выражение и поставим правое выравнивание.
Чтобы посмотреть превью дизайна используйте сочетание клавиш Ctrl + R.
Давайте назовем элементы, чтобы в коде было проще обращаться к ним.
Размерная политика элементов
Вы спросите: «Почему интерфейс так плохо выглядит?». Все потому, что у элементов не настроена вертикальная политика. Для лейбла и поля поставим Maximum.
Для всех кнопок поставим Expanding.
Стилизация калькулятора
Сначала нужно определиться с цветовой палитрой. Я буду использовать 4 цвета:
Почти черный #121212 для фона.
Белый #FFF для текста кнопок и поля ввода.
Серый #666 для фона кнопок при наведении.
Серый посветлее #888 для текста временного выражения и фона кнопок при нажатии.
В Qt Designer поддерживается язык css. Напишем простенький stylesheet для главного окна. Для всего виджета указываем белый цвет текста и почти черный цвет #121212 для фона.
Я буду использовать бесплатный шрифт Rubik из библиотеки Google Fonts. Он довольно приятный.
Давайте посмотрим, что получается.
Давайте изменим кнопки на плоские с прозрачным фоном.
Посмотрим на результат.
Стили для Line Edit и Label
Сначала разберемся с Line Edit. Поставим размер шрифта 40pt и уберем границы. Я не буду делать какие-то изменения при наведении и нажатии, потому что пользователь не может взаимодействовать с этим полем.
Иконки
Теперь зайдем на Google Icons и возьмем черную иконку калькулятора и белую иконку backspace. Я возьму Sharp иконки с размером 24 пикселя. Формат выбирайте на ваше усмотрение. По опыту скажу, что лучше SVG. И лучше оно не только в том, что оно без труда масштабируется без потери качества (векторная графика), но еще и скачивается одним файлом. При скачивании PNG вам нужно будет распаковать архив, зайти в одну из двух папок и вытащить саму иконку.
В статье я скачивал PNG, не делайте так. Я думал, что Qt Designer не поддерживает иконки с векторной графикой, даже не попробовав.
Создадим файл ресурсов:
Resource Browser > Edit Resources > New Resource File.
Я сохранил файл с названием files.qrc . Добавим префикс для иконок.
Закинем туда наши две иконки.
Поставим иконку Backspace:
icon > choose Resource
Поставим размер 24 x 24 пикселя в свойстве iconSize
То же самое проделаем для иконки приложения.
Финальные штрихи
Почти готово. Убираем текст из лейбла. Ставим размер главного окна. У меня будет 300 на 500 пикселей. Такой же размер поставлю минимальным для приложения.
Редактируем интерфейс в коде
Файл интерфейса представляет собой файл с xml разметкой. Мы можем найти блок кода с указывающей рукой, введя в поиске по коду Pointing
Заметим, что этот блок кода идет после блока размерной политики. Поэтому нам нужно заменить:
В современных редакторах это сделать очень просто. Например, в VS Code нужно нажать Ctrl + H.
Впишем нужные блоки кода и нажмем Replace All (Ctrl + Alt + Enter).
Проверяем в дизайне.
Дизайн сделан, поздравляю!
Конвертируем файл ресурсов и интерфейса
Для начала нам нужно конвертировать файл ресурсов в питоновский файл. Для этого напишем в терминале:
pyside6-rcc «название файла ресурсов» > «название Python файла на выходе»
pyside6-rcc files.qrc > files_rc.py
Теперь конвертируем в Python файл интерфейса. Для этого введем в терминал тот же самый синтаксис, но теперь используем pyside6-uic:
pyside6-uic design.ui > design.py
Если у вас на выходе получаются файлы с кодировкой UTF-16 , конвертируйте их в UTF-8 во избежание дальнейших проблем.
Штош, в следующей статье напишем код для главного функционала калькулятора. До встречи.