La oss lære hvordan du lager en tips- og delkalkulator i Python.
Det er et flott personlig prosjekt å bygge for å øve på Python-ferdighetene dine. Videre vil denne opplæringen lære deg hvordan du lager applikasjonen på to måter, først som et kommandolinjeverktøy og for det andre som et GUI-verktøy.
Innholdsfortegnelse
Forhåndsvisning
Vi skal bygge applikasjonen på to måter. Først skal vi bygge et enkelt Python-skallskript som ber brukeren om inndata og skriver utdataene.
For det andre vil vi gi programmet et grafisk brukergrensesnitt ved hjelp av Tkinter.
Programspesifikasjon
Programmet mottar tre innganger:
- Regningsbeløpet
- Tippingsprosenten
- Antall personer som deler regningen
Ved å bruke disse inngangene vil programmet beregne følgende utdata:
- Hver persons bidrag til regningen
- Hver persons bidrag til tipset
- Hver persons totale bidrag
Algoritme
For å oppnå dette vil tip- og delkalkulatoren følge en veldig enkel algoritme skissert nedenfor:
Forutsetninger
For å følge denne opplæringen bør du kjenne og forstå Python-programmeringsspråket. For denne opplæringen kreves kunnskap om grunnleggende konsepter, inkludert funksjoner og klasser.
I tillegg bør du ha Python installert i systemet ditt. Hvis det ikke er det, gå over til Python-nettstedet og last det ned. Alternativt har tipsbilk.net en online Python-kompilator der du kan kjøre Python-koden i nettleseren uten noe miljøoppsett i det hele tatt.
Bygge kalkulatoren med et kommandolinjegrensesnitt
Opprett en prosjektmappe
For å begynne, naviger til en tom mappe i systemet. I mitt tilfelle bruker jeg Ubuntu 22.04, så for å lage en mappe og navigere til den ved å bruke terminalen; Jeg må skrive inn følgende kommando:
mkdir tip-calculator && cd tip-calculator
Lag Python-filen
Deretter lager du skriptfilen der vi skal skrive Python-skriptet. I mitt tilfelle vil jeg bruke berøringskommandoen for å gjøre det:
touch main.py
Åpne skriptfilen med din favorittkoderedigerer
For å begynne å skrive koden til skriptet, åpne filen med ditt favorittkoderedigeringsprogram. Jeg kommer til å bruke nano som er en terminalbasert tekstredigerer.
nano main.py
Motta inndata
Når dette er gjort, kan vi legge til følgende kodelinjer øverst i filen:
# 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: "))
I utgangspunktet mottar dette input og kaster datatypen for hver input fra en streng til den mest passende typen.
Beregn tipsbeløpet
Deretter beregner vi tipsbeløpet ved å multiplisere tipsprosenten med regningsbeløpet.
tip_amount = bill_amount * tip_percentage / 100
Del regningen og tipset for å få hver persons bidrag til de to
# 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
Beregn det totale bidraget
Deretter legger du til de individuelle bidragene for å bestemme det totale bidraget per person.
total_contribution = bill_contribution + tip_contribution
Vis resultatene
Til slutt, skriv ut resultatene til brukeren.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
Testing av tip- og delkalkulatoren
Til slutt skal skriptfilen din se slik ut:
# 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)
På dette tidspunktet kan du gjerne teste applikasjonen din ved å bruke følgende kommando:
python3 main.py
Bygg tip- og delkalkulatoren med GUI
I den neste delen av denne opplæringen vil vi implementere den samme applikasjonen, men med et grafisk brukergrensesnitt. For å bygge GUI, vil vi bruke en pakke kalt Tkinter.
Setter opp
Tkinter er en pakke innebygd i Pythons standardbibliotek. Dette betyr at den ble installert som standard da du installerte Python.
På Linux-maskiner med Python installert som standard, er TKinter imidlertid ikke forhåndsinstallert for å spare plass. Derfor må du installere den manuelt ved å bruke følgende kommando:
sudo apt-get install python3-tk
Lag en prosjektfil
For å begynne, lag en fil der Python-skriptet vil bli lagret. Etter at du har opprettet filen, åpner du den med ditt foretrukne tekstredigeringsprogram.
touch gui.py
Importer Tkinter
Deretter importerer du Tkinter-pakken ved å legge til følgende linje øverst i filen.
import tkinter from tk
Lag brukergrensesnittet
Deretter kan vi begynne å lage brukergrensesnittet.
# 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")
Koden ovenfor opprettet et vindu som inneholder alle widgetene for brukergrensesnittet. I tillegg opprettet den en etikett som vil fungere som vinduets tittel.
Deretter opprettet den etiketter og oppføringsfelt for de tre inngangene: bill_amount, tip_percentage og number_of_people. Til slutt opprettet den en knapp som brukeren vil klikke for å kjøre beregningen.
Lag en funksjon for å beregne utdataene
Etter dette kan vi lage en funksjon for å håndtere klikket på Enter-knappen. Denne funksjonen vil ta verdiene til inntastingsfeltene og bruke dem til å beregne utdataene ved å bruke algoritmen nevnt tidligere. Til slutt vil den lage en etikett for å vise utdataene og oppdatere vinduet.
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()
Koden i funksjonen ovenfor har blitt forklart gjennom kommentarer som forklarer hvert hovedtrinn.
Feste hendelsesbehandleren til knappen
Deretter binder vi hendelsesbehandleren til knappen klikk-hendelsen. Knappeklikk-hendelsen i Tkinter er representert av strengen «
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
Til slutt, for å holde vinduet i gang, kaller vi hovedloopmetoden til vindusobjektet.
window.mainloop()
Og vi er ferdige!
Testing av tip- og delkalkulatoren
Du kan kjøre programmet ved å bruke følgende kommando:
python3 gui.py
Dette bør åpne vinduet som følger:
Du kan kjøre kalkulatoren med eksempelinndata:
Siste ord
I denne opplæringen har vi laget en tips- og delkalkulator på to måter. Den første bruker et terminalbasert CLI-verktøy. Det andre er et GUI-verktøy som bruker Pythons Tkinter. Denne opplæringen viser hvordan du bygger et enkelt Python-prosjekt. Hvis du trenger å pusse opp eller pusse Python-ferdighetene dine, er her et Datacamp-kurs.
Deretter kan du sjekke ut hvordan du lager en tilfeldig passordgenerator i Python.