Давайте дізнаємося, як створити калькулятор Tip і Split у Python.
Це чудовий особистий проект для попрацювання ваших навичок Python. Крім того, цей підручник навчить вас, як створити програму двома способами, по-перше, як інструмент командного рядка, а по-друге, як інструмент GUI.
Попередній перегляд
Ми збираємося створити додаток двома способами. Спочатку ми створимо простий сценарій оболонки Python, який запитуватиме у користувача введення та записуватиме вихідні дані.
По-друге, ми надамо програмі графічний інтерфейс користувача за допомогою Tkinter.
Специфікація програми
Програма отримує три входи:
- Сума рахунку
- Відсоток чайових
- Кількість людей, які поділяють рахунок
Використовуючи ці вхідні дані, програма обчислить такі результати:
- Внесок кожного в рахунок
- Внесок кожної людини в чайові
- Загальний внесок кожної людини
Алгоритм
Щоб досягти цього, калькулятор Tip and Split буде слідувати дуже простому алгоритму, описаному нижче:
передумови
Щоб дотримуватися цього посібника, ви повинні знати та розуміти мову програмування 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: "))
По суті, це отримує вхідні дані та перетворює тип даних кожного вхідного елемента з рядка на найбільш відповідний тип.
Розрахуйте суму чайових
Далі ми розраховуємо суму чайових, помноживши відсоток чайових на суму рахунку.
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.
Налаштування
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()
Код у наведеній вище функції було пояснено через коментарі, що пояснюють кожен основний крок.
Приєднання обробника подій до кнопки
Далі ми прив’язуємо обробник події до події натискання кнопки. Подія натискання кнопки в Tkinter представлена рядком ‘
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
Нарешті, щоб продовжити роботу вікна, ми викликаємо метод основного циклу об’єкта вікна.
window.mainloop()
І ми готові!
Тестування калькулятора чайових і розділення
Ви можете запустити програму за допомогою такої команди:
python3 gui.py
Це має відкрити вікно наступним чином:
Ви можете запустити калькулятор із зразком введення:
Заключні слова
У цьому посібнику ми створили калькулятор чайових і розділених двома способами. Перший використовує термінальний інструмент CLI. Другий — інструмент GUI, що використовує Tkinter Python. У цьому посібнику показано, як створити простий проект Python. Якщо вам потрібно освіжити або відшліфувати свої навички Python, ось курс Datacamp.
Далі ви можете перевірити, як створити генератор випадкових паролів у Python.