Crearea unui Calculator de Bacșiș și Împărțire în Python
Acest ghid vă va arăta cum să construiți un calculator de bacșiș și împărțire, un proiect excelent pentru a vă îmbunătăți competențele Python. Vom explora două metode: prima, un instrument de linie de comandă, și a doua, o interfață grafică cu utilizatorul (GUI).
Prezentare Generală
Aplicația va fi dezvoltată în două versiuni distincte. Inițial, vom crea un script Python simplu, care va solicita utilizatorului să introducă date și va afișa rezultatele. Apoi, vom îmbunătăți programul prin adăugarea unei interfețe grafice, folosind biblioteca Tkinter.
Specificațiile Programului
Programul va necesita trei tipuri de informații:
- Suma totală a facturii
- Procentul bacșișului
- Numărul de persoane care împart factura
Pe baza acestor date, programul va genera următoarele rezultate:
- Contribuția fiecărei persoane la factură
- Contribuția fiecărei persoane la bacșiș
- Suma totală pe care o datorează fiecare persoană
Algoritmul de Calcul
Calculatorul de bacșiș și împărțire va urma un algoritm simplu:
- Se preiau datele de intrare: suma_facturii, procent_bacsis, numar_persoane
- Se calculează suma bacșișului: suma_facturii * procent_bacsis / 100
- Se împarte suma_facturii la numar_persoane pentru a obține contribuția la factură per persoană
- Se împarte suma_bacsisului la numar_persoane pentru a obține contribuția la bacșiș per persoană
- Se adună contribuțiile la factură și bacșiș pentru a obține suma totală datorată per persoană
Cerințe Preliminare
Pentru a parcurge acest tutorial, este necesară o înțelegere a limbajului de programare Python, inclusiv conceptele de bază, funcții și clase. De asemenea, trebuie să aveți Python instalat pe sistemul dumneavoastră. Alternativ, puteți utiliza compilatoare Python online, unde puteți rula codul Python direct în browser.
Construirea Calculatorului cu Interfață Linie de Comandă
Crearea unui Director de Proiect
Începeți prin a naviga într-un director gol. Pe sistemele bazate pe Linux, cum ar fi Ubuntu, puteți folosi terminalul pentru a crea și a naviga la un nou director cu comanda:
mkdir calculator-bacsis && cd calculator-bacsis
Crearea Fișierului Python
Creați un fișier script unde veți scrie codul Python. Puteți face acest lucru utilizând comanda touch:
touch main.py
Deschiderea Fișierului Script
Deschideți fișierul `main.py` cu editorul de cod preferat. Puteți folosi un editor de text bazat pe terminal, cum ar fi nano:
nano main.py
Primirea Datelor de Intrare
Adăugați următoarele linii de cod în fișierul `main.py`:
# Preluarea sumei facturii ca număr zecimal suma_factura = float(input("Suma facturii: ")) # Preluarea procentului bacșișului ca număr zecimal procent_bacsis = float(input("Procentul bacșișului: ")) # Preluarea numărului de persoane ca număr întreg numar_persoane = int(input("Numărul de persoane: "))
Acest cod primește datele de intrare și le transformă în tipul de date adecvat.
Calcularea Suma Bacșișului
Calculați suma totală a bacșișului:
suma_bacsis = suma_factura * procent_bacsis / 100
Calcularea Contribuțiilor per Persoană
Împărțiți suma facturii și suma bacșișului la numărul de persoane:
# Calcularea contribuției la factură per persoană contributie_factura = suma_factura / numar_persoane # Calcularea contribuției la bacșiș per persoană contributie_bacsis = suma_bacsis / numar_persoane
Calcularea Contribuției Totale
Calculați contribuția totală per persoană:
contributie_totala = contributie_factura + contributie_bacsis
Afișarea Rezultatelor
Afișați rezultatele finale:
# Afișarea rezultatelor print("Contribuția la factură per persoană: ", contributie_factura) print("Contribuția la bacșiș per persoană: ", contributie_bacsis) print("Contribuția totală per persoană: ", contributie_totala)
Testarea Calculatorului de Bacșiș și Împărțire
Codul complet al fișierului `main.py` ar trebui să arate astfel:
# Preluarea sumei facturii ca număr zecimal suma_factura = float(input("Suma facturii: ")) # Preluarea procentului bacșișului ca număr zecimal procent_bacsis = float(input("Procentul bacșișului: ")) # Preluarea numărului de persoane ca număr întreg numar_persoane = int(input("Numărul de persoane: ")) suma_bacsis = suma_factura * procent_bacsis / 100 # Calcularea contribuției la factură per persoană contributie_factura = suma_factura / numar_persoane # Calcularea contribuției la bacșiș per persoană contributie_bacsis = suma_bacsis / numar_persoane contributie_totala = contributie_factura + contributie_bacsis # Afișarea rezultatelor print("Contribuția la factură per persoană: ", contributie_factura) print("Contribuția la bacșiș per persoană: ", contributie_bacsis) print("Contribuția totală per persoană: ", contributie_totala)
Testați aplicația folosind următoarea comandă:
python3 main.py
Construirea Calculatorului cu Interfață Grafică (GUI)
Vom crea acum aceeași aplicație, dar cu o interfață grafică utilizând Tkinter.
Configurarea Tkinter
Tkinter este inclus în biblioteca standard a Python. Cu toate acestea, pe unele sisteme Linux, poate fi necesară instalarea manuală cu comanda:
sudo apt-get install python3-tk
Crearea Fișierului de Proiect
Creați un nou fișier pentru scriptul Python:
touch gui.py
Importarea Tkinter
Importați biblioteca Tkinter în fișierul `gui.py`:
import tkinter as tk
Crearea Interfeței Utilizatorului
Creați fereastra și widget-urile necesare:
# Crearea ferestrei fereastra = tk.Tk() # Crearea titlului ferestrei tk.Label(fereastra, text="Calculator Bacșiș și Împărțire").pack() # Câmpul de introducere pentru suma facturii tk.Label(fereastra, text="Introduceți suma facturii").pack() ent_factura = tk.Entry(fereastra, width=40) ent_factura.pack() # Câmpul de introducere pentru procentul bacșișului tk.Label(fereastra, text="Introduceți procentul bacșișului").pack() ent_bacsis = tk.Entry(fereastra, width=40) ent_bacsis.pack() # Câmpul de introducere pentru numărul de persoane tk.Label(fereastra, text="Introduceți numărul de persoane").pack() ent_persoane = tk.Entry(fereastra, width=40) ent_persoane.pack() # Butonul Enter btn_enter = tk.Button(fereastra, text="Calculează")
Acest cod inițializează fereastra și adaugă etichete și câmpuri de introducere pentru datele necesare.
Crearea Funcției de Calcul
Creați o funcție care să gestioneze acțiunea butonului „Calculează”:
def handle_click(event): # Preluarea datelor din câmpurile de introducere suma_factura = float(ent_factura.get()) procent_bacsis = float(ent_bacsis.get()) numar_persoane = int(ent_persoane.get()) # Calcularea sumei bacșișului suma_bacsis = suma_factura * procent_bacsis / 100 # Calcularea contribuției la factură per persoană contributie_factura = suma_factura / numar_persoane # Calcularea contribuției la bacșiș per persoană contributie_bacsis = suma_bacsis / numar_persoane # Calcularea contribuției totale per persoană contributie_totala = contributie_factura + contributie_bacsis # Crearea șirului de ieșire output = f'Factură per persoană: {contributie_factura} \n Bacșiș per persoană: {contributie_bacsis} \n Total per persoană: {contributie_totala}' # Crearea etichetei pentru afișarea rezultatului tk.Label(fereastra, text=output).pack() # Actualizarea ferestrei fereastra.update()
Asocierea Funcției cu Butonul
Asociați funcția `handle_click` cu evenimentul de clic pe buton:
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
În final, pentru a menține fereastra activă, apelați metoda `mainloop`:
fereastra.mainloop()
Testarea Calculatorului GUI
Rulați aplicația cu comanda:
python3 gui.py
Fereastra ar trebui să se deschidă. Introduceți datele și apăsați „Calculează” pentru a vedea rezultatele:
Un exemplu de calcul cu introducerea datelor:
Concluzie
Am creat un calculator de bacșiș și împărțire în două moduri: o interfață de linie de comandă și o interfață grafică. Acesta este un exemplu practic de construire a unui proiect Python. Dacă doriți să vă îmbunătățiți abilitățile Python, puteți continua cu cursuri online.
De asemenea, puteți explora crearea unui generator de parole aleatorii în Python.