Sådan opretter du en tip- og splitberegner i Python

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.

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:

  • Modtag inputs: bill_amount, tip_percentage, number_of_people
  • Beregn drikkepengebeløbet ved at gange regningen_beløb * tip_procent / 100
  • Divider regning_beløb med antal_personer for at få hver persons bidrag til regningen.
  • Divider tipbeløbet med antal_personer for at få hver persons bidrag til drikkepengene.
  • Til sidst skal du tilføje bidragene til regningen og drikkepengene for at få det samlede beløb, der skal betales.
  • 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.

      En introduktion til AWS Lambda for begyndere

    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.

      Få kun seneste nyheder og artikler i Google Søgning ved at definere et datointerval

    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.

      15 fotograferingsvilkår, du ikke kender til, men er for bange for at spørge

    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 ‘‘. For at binde hændelsen til hændelseshandleren bruger vi knappens bindemetode. Tilføj denne kodelinje under funktionsdefinitionen:

    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.