Як створити калькулятор підказок і розділення в Python

Давайте дізнаємося, як створити калькулятор Tip і Split у Python.

Це чудовий особистий проект для попрацювання ваших навичок Python. Крім того, цей підручник навчить вас, як створити програму двома способами, по-перше, як інструмент командного рядка, а по-друге, як інструмент GUI.

Попередній перегляд

Ми збираємося створити додаток двома способами. Спочатку ми створимо простий сценарій оболонки Python, який запитуватиме у користувача введення та записуватиме вихідні дані.

По-друге, ми надамо програмі графічний інтерфейс користувача за допомогою Tkinter.

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

Програма отримує три входи:

  • Сума рахунку
  • Відсоток чайових
  • Кількість людей, які поділяють рахунок

Використовуючи ці вхідні дані, програма обчислить такі результати:

  • Внесок кожного в рахунок
  • Внесок кожної людини в чайові
  • Загальний внесок кожної людини

Алгоритм

Щоб досягти цього, калькулятор Tip and Split буде слідувати дуже простому алгоритму, описаному нижче:

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

    Щоб дотримуватися цього посібника, ви повинні знати та розуміти мову програмування Python. Для цього посібника потрібне знання основних понять, у тому числі функцій і класів.

    Крім того, у вашій системі має бути встановлено Python. Якщо це не так, перейдіть на веб-сайт Python і завантажте його. Крім того, techukraine.net має онлайновий компілятор 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: "))

    По суті, це отримує вхідні дані та перетворює тип даних кожного вхідного елемента з рядка на найбільш відповідний тип.

      Яка різниця між 5G та 5GHz Wi-Fi?

    Розрахуйте суму чайових

    Далі ми розраховуємо суму чайових, помноживши відсоток чайових на суму рахунку.

    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

    Створення калькулятора Tip and Split Calculator з графічним інтерфейсом користувача

    У наступній частині цього посібника ми реалізуємо ту саму програму, але з графічним інтерфейсом користувача. Для створення GUI ми будемо використовувати пакет під назвою Tkinter.

      Як використовувати оператори розпакування (*, **) у Python?

    Налаштування

    Tkinter — це пакет, вбудований у стандартну бібліотеку Python. Це означає, що він був встановлений за замовчуванням, коли ви інсталювали Python.

    Однак на машинах Linux із інстальованим за замовчуванням Python TKinter попередньо не інстальовано для економії місця. Тому вам потрібно встановити його вручну за допомогою такої команди:

    sudo apt-get install python3-tk

    Створіть файл проекту

    Для початку створіть файл, де буде зберігатися сценарій Python. Після створення файлу відкрийте його за допомогою текстового редактора, якому ви віддаєте перевагу.

    touch gui.py

    Імпорт Tkinter

    Потім імпортуйте пакет 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()

    Код у наведеній вище функції було пояснено через коментарі, що пояснюють кожен основний крок.

      Як створити резервну копію та відновити дані збереження PS4

    Приєднання обробника подій до кнопки

    Далі ми прив’язуємо обробник події до події натискання кнопки. Подія натискання кнопки в Tkinter представлена ​​рядком ‘‘. Щоб прив’язати подію до обробника події, ми використовуємо метод прив’язки кнопки. Додайте цей рядок коду під визначенням функції:

    btn_enter.bind('<Button-1>', handle_click)
    btn_enter.pack()

    Нарешті, щоб продовжити роботу вікна, ми викликаємо метод основного циклу об’єкта вікна.

    window.mainloop()

    І ми готові!

    Тестування калькулятора чайових і розділення

    Ви можете запустити програму за допомогою такої команди:

    python3 gui.py

    Це має відкрити вікно наступним чином:

    Ви можете запустити калькулятор із зразком введення:

    Заключні слова

    У цьому посібнику ми створили калькулятор чайових і розділених двома способами. Перший використовує термінальний інструмент CLI. Другий — інструмент GUI, що використовує Tkinter Python. У цьому посібнику показано, як створити простий проект Python. Якщо вам потрібно освіжити або відшліфувати свої навички Python, ось курс Datacamp.

    Далі ви можете перевірити, як створити генератор випадкових паролів у Python.