Lad os lære, hvordan du opretter en tip- og split-lommeregner i Python.
Det er et fantastisk personligt projekt at bygge for at øve dine Python-færdigheder. Desuden vil denne tutorial lære dig, hvordan du opretter applikationen på to måder, først som et kommandolinjeværktøj og for det andet som et GUI-værktøj.
Indholdsfortegnelse
Forhåndsvisning
Vi vil bygge applikationen på to måder. Først vil vi bygge et simpelt Python-shell-script, der beder brugeren om input og skriver outputtet.
For det andet vil vi give programmet en grafisk brugergrænseflade ved hjælp af Tkinter.
Programspecifikation
Programmet modtager tre input:
- Regningens beløb
- Drikkepengeprocenten
- Antallet af personer, der deler regningen
Ved at bruge disse input vil programmet beregne følgende output:
- Hver persons bidrag til regningen
- Hver persons bidrag til tippet
- Hver persons samlede bidrag
Algoritme
For at opnå dette vil tip- og split-beregneren følge en meget enkel algoritme, der er skitseret nedenfor:
Forudsætninger
For at følge denne tutorial skal du kende og forstå Python-programmeringssproget. For denne øvelse kræves viden om grundlæggende begreber, herunder funktioner og klasser.
Derudover bør du have Python installeret i dit system. Hvis det ikke er det, skal du gå over til Python-webstedet og downloade det. Alternativt har toadmin.dk en online Python-compiler, hvor du kan køre din Python-kode i browseren uden nogen miljøopsætning overhovedet.
Opbygning af lommeregneren med en kommandolinjegrænseflade
Opret en projektmappe
For at begynde skal du navigere til en tom mappe i dit system. I mit tilfælde bruger jeg Ubuntu 22.04, så for at oprette en mappe og navigere til den ved hjælp af terminalen; Jeg skal indtaste følgende kommando:
mkdir tip-calculator && cd tip-calculator
Opret Python-filen
Opret derefter scriptfilen, hvor vi skriver Python-scriptet. I mit tilfælde vil jeg bruge berøringskommandoen til at gøre det:
touch main.py
Åbn scriptfilen med din favoritkodeeditor
For at begynde at skrive koden til scriptet skal du åbne filen med din foretrukne kodeeditor. Jeg skal bruge nano, som er en terminalbaseret teksteditor.
nano main.py
Modtag input
Når dette er gjort, kan vi tilføje følgende kodelinjer til toppen af 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: "))
Grundlæggende modtager dette input og kaster datatypen for hver input fra en streng til den mest passende type.
Beregn tipbeløbet
Dernæst beregner vi drikkepengebeløbet ved at gange drikkepengeprocenten med regningsbeløbet.
tip_amount = bill_amount * tip_percentage / 100
Del regningen og drikkepenge for at 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 samlede bidrag
Tilføj derefter de individuelle bidrag for at bestemme det samlede bidrag pr. person.
total_contribution = bill_contribution + tip_contribution
Vis resultaterne
Til sidst skal du udlæse resultaterne til brugeren.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
Test af tip- og splitberegneren
Endelig skal din script-fil se sådan ud:
# 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 tidspunkt er du velkommen til at teste din applikation ved hjælp af følgende kommando:
python3 main.py
Opbygning af tip- og splitberegneren med GUI
I den næste del af denne øvelse implementerer vi den samme applikation, men med en grafisk brugergrænseflade. For at bygge GUI’en vil vi bruge en pakke kaldet Tkinter.
Sætte op
Tkinter er en pakke indbygget i Pythons standardbibliotek. Det betyder, at det blev installeret som standard, da du installerede Python.
På Linux-maskiner med Python installeret som standard er TKinter dog ikke forudinstalleret for at spare plads. Derfor skal du installere det manuelt ved hjælp af følgende kommando:
sudo apt-get install python3-tk
Opret en projektfil
For at begynde skal du oprette en fil, hvor Python-scriptet vil blive gemt. Når du har oprettet filen, skal du åbne den med din foretrukne teksteditor.
touch gui.py
Importer Tkinter
Importer derefter Tkinter-pakken ved at tilføje følgende linje til toppen af filen.
import tkinter from tk
Opret brugergrænsefladen
Derefter kan vi begynde at oprette brugergrænsefladen.
# 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")
Ovenstående kode oprettede et vindue, der indeholdt alle brugergrænseflade-widgets. Derudover oprettede den en etiket, der vil fungere som vinduets titel.
Dernæst oprettede den etiketter og indtastningsfelter for de tre input: bill_amount, tip_procent og number_of_people. Til sidst oprettede den en knap, som brugeren vil klikke på for at køre beregningen.
Opret en funktion til at beregne output
Herefter kan vi oprette en funktion til at håndtere et klik på Enter-knappen. Denne funktion vil tage værdierne af indtastningsfelterne og bruge dem til at beregne output ved hjælp af algoritmen nævnt før. Til sidst vil den oprette en etiket til at vise output og opdatere 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 ovenstående funktion er blevet forklaret gennem kommentarer, der forklarer hvert større trin.
Fastgørelse af hændelseshåndtereren til knappen
Dernæst binder vi hændelseshandleren til knappen klik hændelsen. Knapklik-hændelsen i Tkinter er repræsenteret af strengen ‘
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
Til sidst, for at holde vinduet kørende, kalder vi hovedloopmetoden for vinduesobjektet.
window.mainloop()
Og vi er færdige!
Test af tip- og splitberegneren
Du kan køre programmet ved at bruge følgende kommando:
python3 gui.py
Dette skulle åbne vinduet som følger:
Du kan køre lommeregneren med eksempelinput:
Afsluttende ord
I denne tutorial har vi lavet en tip- og opdelt lommeregner på to måder. Den første bruger et terminalbaseret CLI-værktøj. Det andet er et GUI-værktøj, der bruger Pythons Tkinter. Denne vejledning viser, hvordan man bygger et simpelt Python-projekt. Hvis du har brug for at pudse op eller pudse dine Python-færdigheder, er her et Datacamp-kursus.
Dernæst kan du tjekke ud, hvordan du opretter en tilfældig adgangskodegenerator i Python.