Jak stworzyć kalkulator napiwków i podziałów w Pythonie
Opublikowany: 2023-01-06Nauczmy się, jak utworzyć kalkulator Tip and Split w Pythonie.
To świetny osobisty projekt do zbudowania, aby ćwiczyć swoje umiejętności w języku Python. Ponadto ten samouczek nauczy Cię, jak utworzyć aplikację na dwa sposoby, najpierw jako narzędzie wiersza polecenia, a następnie jako narzędzie GUI.
Zapowiedź
Aplikację będziemy budować na dwa sposoby. Najpierw zbudujemy prosty skrypt powłoki Pythona, który prosi użytkownika o wprowadzenie danych i zapisuje dane wyjściowe.

Po drugie, damy programowi graficzny interfejs użytkownika za pomocą Tkintera.

Specyfikacja programu
Program otrzymuje trzy wejścia:
- Kwota rachunku
- Procent napiwków
- Liczba osób dzielących rachunek
Korzystając z tych danych wejściowych, program obliczy następujące dane wyjściowe:
- Wkład każdej osoby do rachunku
- Wkład każdej osoby do napiwku
- Całkowity wkład każdej osoby
Algorytm
Aby to osiągnąć, kalkulator napiwków i podziałów będzie działał zgodnie z bardzo prostym algorytmem opisanym poniżej:
- Odbierz dane wejściowe
: bill_amount,tip_percentage,number_of_people - Oblicz
amountnapiwku, mnożącbill_amount*tip_percentage / 100 - Podziel
bill_amountprzeznumber_of_people, aby uzyskać udział każdej osoby w rachunku. - Podziel kwotę
number_of_peopleprzeztip_amount, aby uzyskać wkład każdej osoby w napiwek. - Na koniec dodaj składki do rachunku i napiwek, aby uzyskać całkowitą kwotę do zapłaty.
Wymagania wstępne
Aby postępować zgodnie z tym samouczkiem, powinieneś znać i rozumieć język programowania Python. W przypadku tego samouczka wymagana jest znajomość podstawowych pojęć, w tym funkcji i klas.
Ponadto powinieneś mieć zainstalowany Python w swoim systemie. Jeśli tak nie jest, przejdź do witryny Pythona i pobierz ją. Alternatywnie, Geekflare ma internetowy kompilator Pythona, w którym możesz uruchomić swój kod Pythona w przeglądarce bez żadnej konfiguracji środowiska.
Budowanie kalkulatora z interfejsem wiersza poleceń
Utwórz folder projektu
Aby rozpocząć, przejdź do pustego folderu w systemie. W moim przypadku używam Ubuntu 22.04, więc aby utworzyć folder i przejść do niego za pomocą terminala; Muszę wprowadzić następujące polecenie:
mkdir tip-calculator && cd tip-calculatorUtwórz plik Pythona
Następnie utwórz plik skryptu, w którym napiszemy skrypt Pythona. W moim przypadku użyję do tego polecenia touch :
touch main.pyOtwórz plik skryptu za pomocą swojego ulubionego edytora kodu
Aby rozpocząć wpisywanie kodu do skryptu, otwórz plik w swoim ulubionym edytorze kodu. Zamierzam używać nano , który jest edytorem tekstu opartym na terminalu.
nano main.pyOdbierz dane wejściowe
Po wykonaniu tej czynności możemy dodać następujące wiersze kodu na początku pliku:
# 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: "))Zasadniczo odbiera dane wejściowe i rzutuje typ danych każdego wejścia z łańcucha na najbardziej odpowiedni typ.
Oblicz kwotę napiwku
Następnie obliczamy kwotę napiwku, mnożąc procent napiwku przez kwotę rachunku.
tip_amount = bill_amount * tip_percentage / 100Podziel rachunek i napiwek, aby uzyskać wkład każdej osoby do dwóch
# 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_peopleOblicz całkowity wkład
Następnie dodaj poszczególne składki, aby określić całkowity wkład na osobę.
total_contribution = bill_contribution + tip_contributionWyświetl wyniki
Na koniec wyślij wyniki do użytkownika.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)Testowanie kalkulatora napiwków i podziałów
Ostatecznie plik skryptu powinien wyglądać tak:
# 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)W tym momencie możesz przetestować swoją aplikację za pomocą następującego polecenia:

python3 main.py 
Tworzenie kalkulatora napiwków i podziałów z graficznym interfejsem użytkownika
W następnej części tego samouczka zaimplementujemy tę samą aplikację, ale z graficznym interfejsem użytkownika. Do zbudowania GUI użyjemy pakietu o nazwie Tkinter.
Konfigurowanie
Tkinter to pakiet wbudowany w standardową bibliotekę Pythona. Oznacza to, że został zainstalowany domyślnie podczas instalacji Pythona.
Jednak na komputerach z systemem Linux z domyślnie zainstalowanym Pythonem TKinter nie jest preinstalowany, aby zaoszczędzić miejsce. Dlatego musisz zainstalować go ręcznie za pomocą następującego polecenia:
sudo apt-get install python3-tkUtwórz plik projektu
Aby rozpocząć, utwórz plik, w którym będzie przechowywany skrypt Pythona. Po utworzeniu pliku otwórz go w preferowanym edytorze tekstu.
touch gui.pyImportuj Tkintera
Następnie zaimportuj pakiet Tkinter, dodając następujący wiersz na początku pliku.
import tkinter from tkUtwórz interfejs użytkownika
Następnie możemy przystąpić do tworzenia interfejsu użytkownika.
# 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")Powyższy kod utworzył okno zawierające wszystkie widżety interfejsu użytkownika. Ponadto stworzył etykietę, która będzie służyć jako tytuł okna.
Następnie utworzył etykiety i pola wprowadzania dla trzech danych wejściowych: bill_amount , tip_percentage i number_of_people . Na koniec utworzono przycisk, który użytkownik kliknie, aby uruchomić obliczenia.
Utwórz funkcję do obliczania wyników
Następnie możemy utworzyć funkcję obsługującą kliknięcie przycisku Enter. Ta funkcja pobierze wartości pól wejściowych i użyje ich do obliczenia danych wyjściowych przy użyciu algorytmu wspomnianego wcześniej. Na koniec utworzy etykietę, aby wyświetlić dane wyjściowe i zaktualizować okno.
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()Kod w powyższej funkcji został wyjaśniony za pomocą komentarzy wyjaśniających każdy główny krok.
Dołączanie programu obsługi zdarzeń do przycisku
Następnie wiążemy procedurę obsługi zdarzenia ze zdarzeniem kliknięcia przycisku. Zdarzenie kliknięcia przycisku w Tkinter jest reprezentowane przez ciąg znaków „ <Button-1> ”. Aby powiązać zdarzenie z procedurą obsługi zdarzeń, używamy metody wiązania przycisku. Dodaj ten wiersz kodu pod definicją funkcji:
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack() Na koniec, aby okno działało, wywołujemy metodę mainloop obiektu window .
window.mainloop()I skończyliśmy!
Testowanie kalkulatora napiwków i podziałów
Możesz uruchomić aplikację za pomocą następującego polecenia:
python3 gui.pyTo powinno otworzyć okno w następujący sposób:

Możesz uruchomić kalkulator z przykładowymi danymi wejściowymi:

Ostatnie słowa
W tym samouczku utworzyliśmy kalkulator napiwków i podziałów na dwa sposoby. Pierwszy wykorzystuje narzędzie CLI oparte na terminalu. Drugi to narzędzie GUI wykorzystujące Tkinter Pythona. W tym samouczku pokazano, jak zbudować prosty projekt w języku Python. Jeśli chcesz odświeżyć lub doszlifować swoje umiejętności w zakresie Pythona, oto kurs Datacamp.
Następnie możesz sprawdzić, jak utworzyć generator losowych haseł w Pythonie.
