Cum să creați un pont și un calculator împărțit în Python

Publicat: 2023-01-06

Să î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.

Captură de ecran din 2023-01-05-19-30-39

În al doilea rând, vom oferi programului o interfață grafică cu utilizatorul folosind Tkinter.

Captură de ecran din 2023-01-05-15-11-29

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:

  1. Primiți intrările : bill_amount , tip_percentage , number_of_people
  2. Calculați amount bacșișului înmulțind bill_amount * tip_percentage / 100
  3. Împărțiți bill_amount la number_of_people pentru a obține contribuția fiecărei persoane la factură.
  4. Împărțiți tip_amount la number_of_people pentru a obține contribuția fiecărei persoane la bacșiș.
  5. Î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
Captură de ecran din 2023-01-05-19-32-16

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ă:

Captură de ecran din 2023-01-05-20-27-26

Puteți rula calculatorul cu introducerea eșantionului:

Captură de ecran din 2023-01-05-20-29-09

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.