Давайте узнаем, как сделать калькулятор чаевых и сплитов на Python.
Это отличный личный проект, который вы можете создать, чтобы попрактиковаться в своих навыках Python. Кроме того, этот учебник научит вас создавать приложение двумя способами: сначала в виде инструмента командной строки, а затем в качестве инструмента с графическим интерфейсом.
Содержание
- 1 Обзор
- 2 Спецификация программы
- 3 Алгоритм
- 4 Предпосылки
- 5 Создание калькулятора с интерфейсом командной строки
- 5.1 Создать папку проекта
- 5.2 Создайте файл Python
- 5.3 Откройте файл сценария с помощью вашего любимого редактора кода.
- 5.4 Получить ввод
- 5.5 Рассчитать сумму чаевых
- 5.6 Разделите счет и чаевые, чтобы получить вклад каждого человека на двоих
- 5.7 Рассчитать общий вклад
- 5.8 Показать результаты
- 5.9 Тестирование калькуляторов чаевых и сплитов
- 6 Создание калькулятора чаевых и разделения с графическим интерфейсом
Обзор
Мы создадим приложение двумя способами. Во-первых, мы создадим простой сценарий оболочки Python, который запрашивает у пользователя ввод и записывает вывод.
Во-вторых, мы предоставим программе графический интерфейс пользователя с помощью Tkinter.
Спецификация программы
Программа получает три входа:
- Сумма счета
- Процент чаевых
- Количество людей, использующих учетную запись
Используя эти входные данные, программа вычислит следующий результат:
- Вклад каждого человека на счет
- Вклад каждого человека в совет
- Общий вклад каждого человека
Алгоритм
Чтобы достичь этого, калькулятор чаевых и сплитов будет следовать очень простому алгоритму, который указан ниже:
Предпосылки
Чтобы следовать этому руководству, вы должны знать и понимать язык программирования Python. Этот учебник требует знания основных понятий, включая функции и классы.
Кроме того, в вашей системе должен быть установлен Python. Если нет, перейдите на сайт Python и загрузите его. Кроме того, у vdzvdz есть онлайн-компилятор Python, где вы можете запускать свой код Python в браузере без какой-либо настройки среды.
Создание калькулятора с интерфейсом командной строки
Создать папку проекта
Для начала перейдите в пустую папку в вашей системе. В моем случае я использую Ubuntu 22.04, поэтому я создаю папку и перехожу к ней с помощью терминала; Мне нужно ввести следующую команду:
mkdir tip-calculator && cd tip-calculator
Создайте файл Python
Затем создайте файл сценария, в котором мы напишем сценарий Python. В моем случае я буду использовать для этого команду touch:
touch main.py
Откройте файл сценария с помощью вашего любимого редактора кода.
Чтобы начать писать код в скрипте, откройте файл в своем любимом редакторе кода. Я буду использовать nano, текстовый редактор на базе терминала.
nano main.py
Получить ввод
Как только это будет сделано, мы можем добавить следующие строки кода в начало файла:
# Receiving input for bill amount as a floating point number bill_amount = float(input("Bill amount: ")) # Receiving input for the tip percentage as a floating point number tip_percentage = float(input("Tip percentage: ")) # Receiving the input for the number of people as an integer number_of_people = int(input("Number of people: "))
По сути, это принимает ввод и преобразует тип данных каждого ввода из строки в наиболее подходящий тип.
Рассчитать сумму чаевых
Затем мы рассчитываем сумму чаевых, умножая процент чаевых на сумму счета.
tip_amount = bill_amount * tip_percentage / 100
Разделите счет и чаевые, чтобы получить вклад каждого человека на двоих
# Calculating each person's bill contribution bill_contribution = bill_amount / number_of_people # Calculating each person's tip contribution tip_contribution = tip_amount / number_of_people
Рассчитать общий вклад
Затем добавьте индивидуальные взносы, чтобы определить общий вклад на человека.
total_contribution = bill_contribution + tip_contribution
Показать результаты
Наконец, распечатайте результаты пользователю.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
Тестирование калькуляторов чаевых и сплитов
Наконец, файл сценария должен выглядеть так:
# Receiving input for bill amount as a floating point number bill_amount = float(input("Bill amount: ")) # Receiving input for the tip percentage as a floating point number tip_percentage = float(input("Tip percentage: ")) # Receiving the input for the number of people as an integer number_of_people = int(input("Number of people: ")) tip_amount = bill_amount * tip_percentage / 100 # Calculating each person's bill contribution bill_contribution = bill_amount / number_of_people # Calculating each person's tip contribution tip_contribution = tip_amount / number_of_people total_contribution = bill_contribution + tip_contribution # Displaying the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
На этом этапе не стесняйтесь протестировать свое приложение, используя следующую команду:
python3 main.py
Создание калькулятора чаевых и разделения с графическим интерфейсом
В следующей части этого руководства мы реализуем то же приложение, но с графическим пользовательским интерфейсом. Для создания графического интерфейса мы будем использовать пакет под названием Tkinter.
Мириться
Tkinter — это пакет, встроенный в стандартную библиотеку Python. Это означает, что он устанавливается по умолчанию при установке Python.
Однако на машинах Linux с установленным по умолчанию Python TKinter не устанавливается предварительно для экономии места. Поэтому вам необходимо установить его вручную с помощью следующей команды:
sudo apt-get install python3-tk
Создать файл проекта
Для начала создайте файл для хранения скрипта Python. После создания файла откройте его в предпочитаемом вами текстовом редакторе.
touch gui.py
Импортировать Ткинтер
Затем импортируйте пакет Tkinter, добавив следующую строку в начало файла.
import tkinter from tk
Создайте пользовательский интерфейс
Затем мы можем приступить к созданию пользовательского интерфейса.
# Creating the window window = tk.Tk() # Creating the Window title tk.Label(text="Tip and Split Calculator").pack() # Create an input field tk.Label(text="Enter bill amount").pack() ent_bill = tk.Entry(width=40) ent_bill.pack() # Create and entry for the tip percentage tk.Label(text="Enter tip percentage").pack() ent_tip = tk.Entry(width=40) ent_tip.pack() # Create an entry for the number of people tk.Label(text="Enter the number of people").pack() ent_people = tk.Entry(width=40) ent_people.pack() # Create the Enter button btn_enter = tk.Button(text="Enter")
Приведенный выше код создал окно, содержащее все виджеты пользовательского интерфейса. Кроме того, он создал тег, который будет служить заголовком окна.
Затем он создал метки и поля ввода для трех входных данных: сумма счета, процент чаевых и количество_людей. Наконец, он создал кнопку, которую пользователь должен был щелкнуть, чтобы начать расчет.
Создайте функцию для вычисления вывода
После этого мы можем создать функцию, которая будет обрабатывать нажатие кнопки Enter. Эта функция будет принимать значения полей ввода и использовать их для вычисления вывода с использованием ранее упомянутого алгоритма. Наконец, он создаст тег для отображения вывода и обновления окна.
def handle_click(event): # Collecting the inputs from the entry fields using the get method # Also type casting the inputs from the default string data type bill_amount = float(ent_bill.get()) tip_percentage = float(ent_tip.get()) number_of_people = int(ent_people.get()) # Calcuating the amount to be paid as a tip tip_amount = bill_amount * tip_percentage / 100 # Calculating the bill contribution of each person at the table bill_contribution = bill_amount / number_of_people # Calculating the tip contribution of each person at the table tip_contribution = tip_amount / number_of_people # Calculating the total contribution of each person total_contribution = bill_contribution + tip_contribution # Creating the output string output = f'Bill per person: {bill_contribution} n Tip per person: {tip_contribution} n Total per person: {total_contribution}' # Creating a label for the output text tk.Label(text=output).pack() # Updating the window to reflect the UI changes window.update()
Код в приведенной выше функции поясняется комментариями, поясняющими каждый основной шаг.
Прикрепление обработчика события к кнопке
Затем мы привязываем обработчик события к событию нажатия кнопки. Событие нажатия кнопки в Tkinter представлено строкой ». Чтобы привязать событие к обработчику события, мы используем метод привязки кнопки. Добавьте эту строку кода ниже определения функции:
btn_enter.bind('', handle_click) btn_enter.pack()
Наконец, чтобы сохранить окно живым, мы вызываем метод mainloop объекта окна.
window.mainloop()
И мы закончили!
Тестирование калькуляторов чаевых и сплитов
Вы можете запустить приложение с помощью следующей команды:
python3 gui.py
Должно открыться вот такое окно:
Вы можете запустить калькулятор с образцом ввода:
Заключительные слова
В этом уроке мы сделали калькулятор чаевых и разделили его на два способа. В первом используется инструмент командной строки на основе терминала. Второй — инструмент с графическим интерфейсом, использующий Python Tkinter. В этом руководстве показано, как создать простой проект Python. Если вам нужно освежить или отполировать свои навыки Python, вот курс Datacamp.
Затем вы можете узнать, как создать генератор случайных паролей в Python.