Tanuljuk meg, hogyan hozhat létre Tip és Split számológépet Pythonban.
Ez egy nagyszerű személyes projekt, amelyet Python-készségeid gyakorlására készíthetsz. Ezenkívül ez az oktatóanyag megtanítja Önnek, hogyan hozhatja létre az alkalmazást kétféle módon, először parancssori eszközként, másodszor pedig grafikus felhasználói felület eszközként.
Tartalomjegyzék
Előnézet
Az alkalmazást kétféleképpen készítjük el. Először is készítünk egy egyszerű Python shell szkriptet, amely bekéri a felhasználót, és megírja a kimenetet.
Másodszor, a programnak grafikus felhasználói felületet adunk a Tkinter segítségével.
Program specifikáció
A program három bemenetet kap:
- A számla összege
- A borravaló százaléka
- A számlát megosztók száma
Ezen bemenetek felhasználásával a program a következő kimenetet számítja ki:
- Minden személy hozzájárulása a számlához
- Mindenki hozzájárulása a borravalóhoz
- Minden személy teljes hozzájárulása
Algoritmus
Ennek eléréséhez a Tip- és Split-kalkulátor egy nagyon egyszerű algoritmust követ, amelyet az alábbiakban vázolunk fel:
Előfeltételek
Az oktatóanyag követéséhez ismernie kell és értenie kell a Python programozási nyelvet. Ehhez az oktatóanyaghoz az alapvető fogalmak ismerete szükséges, beleértve a függvényeket és osztályokat.
Ezenkívül telepítenie kell a Pythont a rendszerére. Ha nem, menjen a Python webhelyére, és töltse le. Alternatív megoldásként a etoppc.com rendelkezik egy online Python fordítóval, ahol a Python-kódot a böngészőben futtathatja környezetbeállítás nélkül.
A számológép felépítése parancssori felülettel
Hozzon létre egy projekt mappát
Kezdésként navigáljon egy üres mappába a rendszerben. Az én esetemben Ubuntu 22.04-et használok, ezért hozzunk létre egy mappát, és navigáljunk hozzá a terminál segítségével; A következő parancsot kell megadnom:
mkdir tip-calculator && cd tip-calculator
Hozd létre a Python fájlt
Ezután hozzuk létre a szkriptfájlt, ahová a Python szkriptet írjuk. Az én esetemben a touch parancsot fogom használni ehhez:
touch main.py
Nyissa meg a Script fájlt a Kedvenc kódszerkesztővel
A kód írásának megkezdéséhez nyissa meg a fájlt kedvenc kódszerkesztőjével. A nano-t fogom használni, ami egy terminál alapú szövegszerkesztő.
nano main.py
Fogadja a bemenetet
Ha ez megtörtént, hozzáadhatjuk a következő kódsorokat a fájl tetejéhez:
# 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: "))
Alapvetően ez fogadja a bemenetet, és az egyes bemenetek adattípusát egy karakterláncból a legmegfelelőbb típusba önti.
Számítsa ki a borravaló összegét
Ezután kiszámítjuk a borravaló összegét úgy, hogy megszorozzuk a borravaló százalékát a számla összegével.
tip_amount = bill_amount * tip_percentage / 100
Ossza meg a számlát és a borravalót, hogy mindenki hozzájárulását megkapja a kettőhöz
# 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
Számítsa ki a teljes hozzájárulást
Ezután adja hozzá az egyéni hozzájárulásokat a személyenkénti teljes hozzájárulás meghatározásához.
total_contribution = bill_contribution + tip_contribution
Jelenítse meg az Eredményeket
Végül adja ki az eredményeket a felhasználónak.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
A Tip és Split kalkulátor tesztelése
Végül a szkriptfájlnak így kell kinéznie:
# 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)
Ezen a ponton nyugodtan tesztelje az alkalmazást a következő paranccsal:
python3 main.py
Tipp és felosztás kalkulátor készítése grafikus felhasználói felülettel
Az oktatóanyag következő részében ugyanazt az alkalmazást fogjuk megvalósítani, de grafikus felhasználói felülettel. A grafikus felület felépítéséhez a Tkinter nevű csomagot fogjuk használni.
Felállítása
A Tkinter a Python szabványos könyvtárába beépített csomag. Ez azt jelenti, hogy a Python telepítésekor alapértelmezés szerint telepítve volt.
Azokon a Linuxos gépeken, amelyeken alapértelmezés szerint telepítve van a Python, a TKinter nincs előtelepítve a helytakarékosság érdekében. Ezért manuálisan kell telepítenie a következő paranccsal:
sudo apt-get install python3-tk
Hozzon létre egy projektfájlt
Kezdésként hozzon létre egy fájlt, amelyben a Python szkript tárolódik. A fájl létrehozása után nyissa meg a kívánt szövegszerkesztővel.
touch gui.py
Importálja a Tkintert
Ezután importálja a Tkinter csomagot a következő sor hozzáadásával a fájl tetejére.
import tkinter from tk
Hozza létre a felhasználói felületet
Ezután megkezdhetjük a felhasználói felület létrehozását.
# 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")
A fenti kód egy ablakot hozott létre, amely tartalmazza az összes felhasználói felület widgetet. Ezenkívül létrehozott egy címkét, amely az ablak címeként fog szolgálni.
Ezután címkéket és beviteli mezőket hozott létre a három bemenethez: bill_amount, tip_percentage és number_of_people. Végül létrehozott egy gombot, amelyre a felhasználó rákattint a számítás futtatásához.
Hozzon létre egy függvényt a kimenetek kiszámításához
Ezek után létrehozhatunk egy függvényt az Enter gomb megnyomásának kezelésére. Ez a függvény felveszi a beviteli mezők értékeit, és ezek alapján számítja ki a kimeneteket a korábban említett algoritmus segítségével. Végül létrehoz egy címkét a kimenet megjelenítéséhez és az ablak frissítéséhez.
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()
A fenti funkció kódját az egyes főbb lépéseket magyarázó megjegyzések magyarázzák.
Az eseménykezelő rögzítése a gombhoz
Ezután az eseménykezelőt a gombkattintási eseményhez kötjük. A Tkinterben a gombkattintás eseményét a ‘
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
Végül, hogy az ablak működjön, meghívjuk az ablak objektum mainloop metódust.
window.mainloop()
És kész is vagyunk!
A Tip és Split kalkulátor tesztelése
Az alkalmazást a következő paranccsal futtathatja:
python3 gui.py
Ennek a következőképpen kell megnyitnia az ablakot:
A számológépet mintabevitellel futtathatja:
Végső szavak
Ebben az oktatóanyagban kétféle módon hoztunk létre egy tippet és osztott számológépet. Az első terminál alapú CLI eszközt használ. A második egy grafikus felhasználói felület, amely a Python Tkintert használja. Ez az oktatóanyag egy egyszerű Python-projekt felépítését mutatja be. Ha felfrissítened vagy csiszolnod kell Python-készségeidet, itt egy Datacamp tanfolyam.
Ezután megnézheti, hogyan hozhat létre véletlenszerű jelszógenerátort a Pythonban.