Cum să creați un pont și un calculator împărțit în Python
Publicat: 2023-01-06Să învățăm cum să creăm un calculator Tip and Split în Python.
Este un proiect personal grozav de construit pentru a vă exersa abilitățile Python. În plus, acest tutorial vă va învăța cum să creați aplicația în două moduri, primul ca instrument de linie de comandă și al doilea ca instrument GUI.
previzualizare
Vom construi aplicația în două moduri. În primul rând, vom construi un script shell Python simplu care solicită utilizatorului introducerea și scrie rezultatul.
În al doilea rând, vom oferi programului o interfață grafică cu utilizatorul folosind Tkinter.
Specificația programului
Programul primește trei intrări:
- Valoarea facturii
- Procentul de bacșiș
- Numărul de persoane care împart factura
Folosind aceste intrări, programul va calcula următoarea ieșire:
- Contribuția fiecărei persoane la factură
- Contribuția fiecărei persoane la bacșiș
- Contribuția totală a fiecăruia
Algoritm
Pentru a realiza acest lucru, calculatorul Tip and Split va urma un algoritm foarte simplu prezentat mai jos:
- Primiți intrările
: bill_amount
,tip_percentage
,number_of_people
- Calculați
amount
bacșișului înmulțindbill_amount
*tip_percentage / 100
- Împărțiți
bill_amount
lanumber_of_people
pentru a obține contribuția fiecărei persoane la factură. - Împărțiți
tip_amount
lanumber_of_people
pentru a obține contribuția fiecărei persoane la bacșiș. - În cele din urmă, adăugați contribuțiile la factură și bacșișul pentru a obține suma totală de plătit.
Cerințe preliminare
Pentru a urma acest tutorial, ar trebui să cunoașteți și să înțelegeți limbajul de programare Python. Pentru acest tutorial, este necesară cunoașterea conceptelor de bază, inclusiv a funcțiilor și claselor.
În plus, ar trebui să aveți instalat Python în sistemul dvs. Dacă nu este, accesați site-ul web Python și descărcați-l. În mod alternativ, Geekflare are un compilator Python online în care vă puteți rula codul Python în browser fără a configura mediul deloc.
Construirea calculatorului cu o interfață de linie de comandă
Creați un folder de proiect
Pentru a începe, navigați la un folder gol din sistemul dvs. În cazul meu, folosesc Ubuntu 22.04, așa că pentru a crea un folder și a naviga la el folosind terminalul; Trebuie să introduc următoarea comandă:
mkdir tip-calculator && cd tip-calculator
Creați fișierul Python
Apoi, creați fișierul script unde vom scrie scriptul Python. În cazul meu, voi folosi comanda touch
pentru a face acest lucru:
touch main.py
Deschideți fișierul script cu Editorul dvs. de cod preferat
Pentru a începe să scrieți codul în script, deschideți fișierul cu editorul de cod preferat. Voi folosi nano
, care este un editor de text bazat pe terminal.
nano main.py
Primiți intrarea
După aceasta, putem adăuga următoarele linii de cod în partea de sus a fișierului:
# 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: "))
Practic, aceasta primește intrarea și transmite tipul de date al fiecărei intrări dintr-un șir la cel mai potrivit tip.
Calculați suma de bacșiș
Apoi, calculăm suma bacșișului înmulțind procentul bacșișului cu suma facturii.
tip_amount = bill_amount * tip_percentage / 100
Împărțiți factura și bacșișul pentru a obține contribuția fiecărei persoane la cele două
# 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
Calculați contribuția totală
Apoi, adăugați contribuțiile individuale pentru a determina contribuția totală per persoană.
total_contribution = bill_contribution + tip_contribution
Afișați rezultatele
În cele din urmă, trimiteți rezultatele utilizatorului.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
Testarea Calculatorului Tip și Split
În cele din urmă, fișierul dvs. de script ar trebui să arate astfel:
# 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)
În acest moment, nu ezitați să testați aplicația dvs. folosind următoarea comandă:
python3 main.py
Construirea calculatorului tip și împărțire cu GUI
În următoarea porțiune a acestui tutorial, vom implementa aceeași aplicație, dar cu o interfață grafică pentru utilizator. Pentru a construi GUI, vom folosi un pachet numit Tkinter.
Configurare
Tkinter este un pachet încorporat în biblioteca standard a Python. Aceasta înseamnă că a fost instalat în mod implicit când ați instalat Python.
Cu toate acestea, pe mașinile Linux cu Python instalat în mod implicit, TKinter nu este preinstalat pentru a economisi spațiu. Prin urmare, trebuie să îl instalați manual folosind următoarea comandă:
sudo apt-get install python3-tk
Creați un fișier de proiect
Pentru a începe, creați un fișier în care va fi stocat scriptul Python. După ce creați fișierul, deschideți-l cu editorul de text preferat.
touch gui.py
Importă Tkinter
Apoi, importați pachetul Tkinter adăugând următoarea linie în partea de sus a fișierului.
import tkinter from tk
Creați interfața cu utilizatorul
Apoi, putem începe să creăm interfața cu utilizatorul.
# 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")
Codul de mai sus a creat o fereastră care conține toate widget-urile interfeței cu utilizatorul. În plus, a creat o etichetă care va servi drept titlu al ferestrei.
Apoi, a creat etichete și câmpuri de intrare pentru cele trei intrări: bill_amount
, tip_percentage
și number_of_people
. În cele din urmă, a creat un buton pe care utilizatorul va face clic pentru a rula calculul.
Creați o funcție pentru a calcula ieșirile
După aceasta, putem crea o funcție care să gestioneze clicul butonului Enter. Această funcție va lua valorile câmpurilor de intrare și le va folosi pentru a calcula ieșirile folosind algoritmul menționat anterior. În cele din urmă, va crea o etichetă pentru a afișa rezultatul și pentru a actualiza fereastra.
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()
Codul din funcția de mai sus a fost explicat prin comentarii care explică fiecare pas major.
Atașarea handler-ului de evenimente la buton
Apoi, legăm handlerul de evenimente la evenimentul de clic pe butonul. Evenimentul clic pe butonul din Tkinter este reprezentat de șirul „ <Button-1>
”. Pentru a lega evenimentul la handlerul de evenimente, folosim metoda bind a butonului. Adăugați această linie de cod sub definiția funcției:
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
În cele din urmă, pentru a menține fereastra să funcționeze, apelăm metoda mainloop
a obiectului window
.
window.mainloop()
Și am terminat!
Testarea Calculatorului Tip și Split
Puteți rula aplicația folosind următoarea comandă:
python3 gui.py
Aceasta ar trebui să deschidă fereastra după cum urmează:
Puteți rula calculatorul cu introducerea eșantionului:
Cuvinte finale
În acest tutorial, am creat un pont și un calculator împărțit în două moduri. Primul folosește un instrument CLI bazat pe terminal. Al doilea este un instrument GUI care utilizează Tkinter de la Python. Acest tutorial arată cum să construiți un proiect Python simplu. Dacă aveți nevoie să vă perfecționați sau să vă lustruiți abilitățile Python, iată un curs Datacamp.
Apoi, puteți verifica cum să creați un generator de parole aleatorii în Python.