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

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:

  1. Se preiau datele de intrare: suma_facturii, procent_bacsis, numar_persoane
  2. Se calculează suma bacșișului: suma_facturii * procent_bacsis / 100
  3. Se împarte suma_facturii la numar_persoane pentru a obține contribuția la factură per persoană
  4. Se împarte suma_bacsisului la numar_persoane pentru a obține contribuția la bacșiș per persoană
  5. 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.