Pojďme se naučit, jak vytvořit kalkulačku Tip a Split v Pythonu.
Je to skvělý osobní projekt k procvičení dovedností Pythonu. Kromě toho vás tento tutoriál naučí, jak vytvořit aplikaci dvěma způsoby, nejprve jako nástroj příkazového řádku a poté jako nástroj GUI.
Table of Contents
Náhled
Aplikaci vytvoříme dvěma způsoby. Nejprve vytvoříme jednoduchý skript shellu Pythonu, který vyzve uživatele k zadání vstupu a zapíše výstup.
Za druhé, dáme programu grafické uživatelské rozhraní pomocí Tkinter.
Specifikace programu
Program obdrží tři vstupy:
- Částka účtu
- Procento spropitného
- Počet lidí, kteří sdílejí účet
Pomocí těchto vstupů program vypočítá následující výstup:
- Každý příspěvek na účet
- Příspěvek každé osoby ke spropitnému
- Celkový příspěvek každého člověka
Algoritmus
K dosažení tohoto cíle bude kalkulačka Tip and Split následovat velmi jednoduchý algoritmus popsaný níže:
Předpoklady
Abyste mohli sledovat tento tutoriál, měli byste znát a rozumět programovacímu jazyku Python. Pro tento tutoriál je nutná znalost základních pojmů, včetně funkcí a tříd.
Kromě toho byste měli mít ve svém systému nainstalovaný Python. Pokud tomu tak není, přejděte na webovou stránku Pythonu a stáhněte si ji. Alternativně má etechblog.cz online kompilátor Pythonu, kde můžete spouštět kód Pythonu v prohlížeči bez nastavování prostředí.
Vytvoření kalkulačky pomocí rozhraní příkazového řádku
Vytvořte složku projektu
Chcete-li začít, přejděte do prázdné složky ve vašem systému. V mém případě používám Ubuntu 22.04, takže k vytvoření složky a navigaci do ní pomocí terminálu; Potřebuji zadat následující příkaz:
mkdir tip-calculator && cd tip-calculator
Vytvořte soubor Python
Dále vytvořte soubor skriptu, do kterého budeme psát skript Python. V mém případě k tomu použiji dotykový příkaz:
touch main.py
Otevřete soubor skriptu pomocí editoru oblíbeného kódu
Chcete-li začít psát kód do skriptu, otevřete soubor pomocí svého oblíbeného editoru kódu. Budu používat nano, což je textový editor založený na terminálu.
nano main.py
Přijměte vstup
Po dokončení můžeme na začátek souboru přidat následující řádky kódu:
# 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: "))
V podstatě to přijme vstup a přetypuje datový typ každého vstupu z řetězce na nejvhodnější typ.
Vypočítejte částku spropitného
Dále vypočítáme částku spropitného vynásobením procenta spropitného částkou účtu.
tip_amount = bill_amount * tip_percentage / 100
Rozdělte účet a spropitné, abyste získali příspěvek každé osoby dvěma
# 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
Vypočítejte celkový příspěvek
Dále sečtením jednotlivých příspěvků určíte celkový příspěvek na osobu.
total_contribution = bill_contribution + tip_contribution
Zobrazte výsledky
Nakonec odešlete výsledky uživateli.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
Testování kalkulačky tipu a rozdělení
Nakonec by váš soubor skriptu měl vypadat takto:
# 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)
V tomto okamžiku můžete svou aplikaci otestovat pomocí následujícího příkazu:
python3 main.py
Vytvoření kalkulačky tipu a rozdělení pomocí GUI
V další části tohoto tutoriálu implementujeme stejnou aplikaci, ale s grafickým uživatelským rozhraním. K sestavení GUI použijeme balíček s názvem Tkinter.
Nastavení
Tkinter je balíček zabudovaný do standardní knihovny Pythonu. To znamená, že byl nainstalován ve výchozím nastavení při instalaci Pythonu.
Na počítačích se systémem Linux se standardně nainstalovaným Pythonem však není TKinter předinstalován, aby se ušetřilo místo. Proto jej musíte nainstalovat ručně pomocí následujícího příkazu:
sudo apt-get install python3-tk
Vytvořte soubor projektu
Pro začátek vytvořte soubor, do kterého bude uložen skript Python. Po vytvoření souboru jej otevřete pomocí preferovaného textového editoru.
touch gui.py
Importovat Tkinter
Dále importujte balíček Tkinter přidáním následujícího řádku na začátek souboru.
import tkinter from tk
Vytvořte uživatelské rozhraní
Poté můžeme začít vytvářet uživatelské rozhraní.
# 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")
Výše uvedený kód vytvořil okno obsahující všechny widgety uživatelského rozhraní. Navíc vytvořil štítek, který bude sloužit jako nadpis okna.
Dále vytvořil štítky a vstupní pole pro tři vstupy: bill_amount, tip_procentage a number_of_people. Nakonec vytvořilo tlačítko, na které uživatel klikne a spustí výpočet.
Vytvořte funkci pro výpočet výstupů
Poté můžeme vytvořit funkci pro zpracování kliknutí na tlačítko Enter. Tato funkce převezme hodnoty vstupních polí a použije je k výpočtu výstupů pomocí výše uvedeného algoritmu. Nakonec vytvoří štítek pro zobrazení výstupu a aktualizaci okna.
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()
Kód ve výše uvedené funkci byl vysvětlen prostřednictvím komentářů vysvětlujících každý hlavní krok.
Připojení obsluhy události k tlačítku
Dále navážeme obslužnou rutinu události k události kliknutí na tlačítko. Událost kliknutí na tlačítko v Tkinter je reprezentována řetězcem ‚
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
A konečně, abychom udrželi okno v chodu, zavoláme metodu mainloop objektu okna.
window.mainloop()
A máme hotovo!
Testování kalkulačky tipu a rozdělení
Aplikaci můžete spustit pomocí následujícího příkazu:
python3 gui.py
To by mělo otevřít okno následovně:
Kalkulačku můžete spustit s ukázkovým vstupem:
Závěrečná slova
V tomto tutoriálu jsme vytvořili tip a rozdělenou kalkulačku dvěma způsoby. První používá terminálový nástroj CLI. Druhým je nástroj GUI využívající Pythonův Tkinter. Tento tutoriál ukazuje, jak vytvořit jednoduchý projekt Python. Pokud potřebujete oprášit nebo vypilovat své dovednosti Python, zde je kurz Datacamp.
Dále se můžete podívat, jak vytvořit generátor náhodných hesel v Pythonu.