Как сделать калькулятор чаевых и сплитов на Python

Как сделать калькулятор чаевых и сплитов на Python

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

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

Обзор

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

Во-вторых, мы предоставим программе графический интерфейс пользователя с помощью Tkinter.

Спецификация программы

Программа получает три входа:

  • Сумма счета
  • Процент чаевых
  • Количество людей, использующих учетную запись

Используя эти входные данные, программа вычислит следующий результат:

  • Вклад каждого человека на счет
  • Вклад каждого человека в совет
  • Общий вклад каждого человека

Алгоритм

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

  • Получите входные данные: bill_amount, tip_percentage, number_of_people
  • Рассчитайте сумму чаевых, умножив счет_сумму * чаевые_процент / 100
  • Разделите счет_сумму на количество_людей, чтобы получить вклад каждого человека в счете.
  • Разделите сумму чаевых на число_людей, чтобы получить вклад каждого человека.
  • Наконец, добавьте взносы в счет и чаевые, чтобы получить общую сумму к оплате.
  • Предпосылки

    Чтобы следовать этому руководству, вы должны знать и понимать язык программирования 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.

    Поделиться в соцсетях