Как да създадете калкулатор за върха и разделяне в Python

Нека научим как да създадем калкулатор за съвет и разделяне в Python.

Това е страхотен личен проект за изграждане, за да практикувате уменията си за Python. Освен това този урок ще ви научи как да създавате приложението по два начина, първо като инструмент на командния ред и втори като GUI инструмент.

Преглед

Ще изградим приложението по два начина. Първо, ще изградим прост скрипт на обвивката на Python, който подканва потребителя за въвеждане и записва изхода.

Второ, ще дадем на програмата графичен потребителски интерфейс с помощта на Tkinter.

Спецификация на програмата

Програмата получава три входа:

  • Сумата на сметката
  • Процентът на бакшиша
  • Броят на хората, споделящи сметката

Използвайки тези входове, програмата ще изчисли следния изход:

  • Приносът на всеки човек към сметката
  • Приносът на всеки човек към бакшиша
  • Общият принос на всеки човек

Алгоритъм

За да постигне това, калкулаторът Tip and Split ще следва много прост алгоритъм, описан по-долу:

  • Получаване на входните данни: bill_amount, tip_percentage, number_of_people
  • Изчислете сумата на бакшиша, като умножите bill_amount * бакшиш процент / 100
  • Разделете сумата на сметката на брой_хора, за да получите приноса на всеки човек към сметката.
  • Разделете сумата_на бакшиша на брой_хора, за да получите приноса на всеки човек към бакшиша.
  • Накрая добавете вноските към сметката и бакшиша, за да получите общата дължима сума.
  • Предпоставки

    За да следвате този урок, трябва да знаете и разбирате езика за програмиране Python. За този урок се изисква познаване на основни понятия, включително функции и класове.

      Кога идва Sombra за PS4?

    Освен това трябва да имате инсталиран Python във вашата система. Ако не е, отидете на уебсайта на Python и го изтеглете. Като алтернатива, pctechbg.net има онлайн компилатор на Python, където можете да стартирате своя Python код в браузъра без никаква настройка на средата.

    Изграждане на калкулатора с интерфейс на командния ред

    Създайте папка на проекта

    За да започнете, отидете до празна папка във вашата система. В моя случай използвам Ubuntu 22.04, така че да създам папка и да навигирам до нея с помощта на терминала; Трябва да въведа следната команда:

    mkdir tip-calculator && cd tip-calculator

    Създайте файла на Python

    След това създайте скриптовия файл, където ще напишем скрипта на Python. В моя случай ще използвам командата touch, за да го направя:

    touch main.py

    Отворете файла със скрипта с любимия си редактор на кодове

    За да започнете да пишете кода към скрипта, отворете файла с любимия си редактор на кодове. Ще използвам nano, който е базиран на терминал текстов редактор.

    nano main.py

    Получаване на входа

    След като направим това, можем да добавим следните редове код в горната част на файла:

    # 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

    Покажете резултатите

    Накрая изведете резултатите на потребителя.

    # Displayinnng the results
    print("Bill contribution per person: ", bill_contribution)
    print("Tip contribution per person: ", tip_contribution)
    print("Total contribution per person: ", total_contribution)

    Тестване на калкулатора за върха и разделяне

    И накрая, вашият скрипт файл трябва да изглежда така:

    # 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)

    На този етап не се колебайте да стартирате тестово приложението си, като използвате следната команда:

    python3 main.py

    Изграждане на калкулатора за върха и сплит с GUI

    В следващата част от този урок ще внедрим същото приложение, но с графичен потребителски интерфейс. За да изградим GUI, ще използваме пакет, наречен Tkinter.

      Коригирайте Nexus Mod Manager на проблем, възникнал по време на инсталирането

    Настройвам

    Tkinter е пакет, вграден в стандартната библиотека на Python. Това означава, че е бил инсталиран по подразбиране, когато сте инсталирали Python.

    Въпреки това, на Linux машини с инсталиран Python по подразбиране, TKinter не е предварително инсталиран, за да спести място. Следователно трябва да го инсталирате ръчно, като използвате следната команда:

    sudo apt-get install python3-tk

    Създайте файл на проекта

    За да започнете, създайте файл, където ще се съхранява скриптът на Python. След като създадете файла, отворете го с предпочитания от вас текстов редактор.

    touch gui.py

    Импортирайте Tkinter

    След това импортирайте пакета Tkinter, като добавите следния ред в горната част на файла.

    import tkinter from tk

    Създайте потребителския интерфейс

    След това можем да започнем да създаваме потребителския интерфейс.

    # 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")

    Горният код създаде прозорец, съдържащ всички джаджи на потребителския интерфейс. Освен това създаде етикет, който ще служи като заглавие на прозореца.

      Коригирайте грешката „Вие сте били прекъснати“ в Halo Infinite

    След това създаде етикети и полета за въвеждане за трите входа: сума_сметка, процент_бакшиш и брой_хора. И накрая, той създаде бутон, върху който потребителят ще щракне, за да изпълни изчислението.

    Създайте функция за изчисляване на изходите

    След това можем да създадем функция, която да обработва щракването на бутона Enter. Тази функция ще вземе стойностите на полетата за въвеждане и ще ги използва за изчисляване на изходите, като използва алгоритъма, споменат по-горе. И накрая, той ще създаде етикет за показване на изхода и актуализиране на прозореца.

    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()

    Кодът в горната функция е обяснен чрез коментари, обясняващи всяка основна стъпка.

    Прикрепване на манипулатора на събитие към бутона

    След това свързваме манипулатора на събитието със събитието за щракване на бутон. Събитието за натискане на бутон в Tkinter е представено от низа ‘‘. За да обвържем събитието с манипулатора на събитие, използваме метода за свързване на бутона. Добавете този ред код под дефиницията на функцията:

    btn_enter.bind('<Button-1>', handle_click)
    btn_enter.pack()

    И накрая, за да поддържаме прозореца работещ, ние извикваме метода mainloop на обекта прозорец.

    window.mainloop()

    И сме готови!

    Тестване на калкулатора за върха и разделяне

    Можете да стартирате приложението, като използвате следната команда:

    python3 gui.py

    Това трябва да отвори прозореца, както следва:

    Можете да стартирате калкулатора с примерен вход:

    Заключителни думи

    В този урок създадохме калкулатор за бакшиш и разделяне по два начина. Първият използва терминален CLI инструмент. Вторият е GUI инструмент, използващ Tkinter на Python. Този урок показва как да създадете прост проект на Python. Ако трябва да освежите или усъвършенствате уменията си за Python, ето курс на Datacamp.

    След това можете да проверите как да създадете генератор на произволни пароли в Python.