Jak vytvořit tip a kalkulačku rozdělení v Pythonu

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.

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:

  • Získejte vstupy: částka_účtu, procento spropitného, ​​počet_lidí
  • Výši spropitného vypočítejte vynásobením bill_amount * tip_procentage / 100
  • Vydělte částku_účtu počtem_lidí, abyste získali příspěvek každé osoby na účet.
  • Vydělte částku spropitného počtem_lidí, abyste získali příspěvek od každé osoby ke spropitnému.
  • Nakonec přidejte příspěvky na účet a spropitné, abyste získali celkovou splatnou částku.
  • 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.

      8 nejlepších editorů HTML v reálném čase pro vývoj webu

    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.

      Nový bezdrátový standard: Co je Amazon Sidewalk?

    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.

      6 nejlepších ECAD software pro navrhování elektronických produktů

    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 ‚‚. K navázání události na obslužnou rutinu události používáme metodu bind tlačítka. Přidejte tento řádek kódu pod definici funkce:

    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.