Einen Trinkgeld- und Teilungsrechner in Python entwickeln
Lernen wir gemeinsam, wie man einen nützlichen Rechner für Trinkgelder und Rechnungsaufteilungen in der Programmiersprache Python erstellt. Dieses Projekt ist eine hervorragende Möglichkeit, Ihre Python-Kenntnisse zu vertiefen. Wir zeigen Ihnen, wie Sie eine solche Anwendung auf zwei unterschiedliche Weisen realisieren können: zuerst als Kommandozeilenwerkzeug und anschließend als grafische Benutzeroberfläche (GUI).
Ein kurzer Einblick
Wir werden den Rechner auf zwei verschiedene Arten entwickeln. Zuerst erstellen wir ein simples Python-Skript, welches Benutzereingaben über das Terminal entgegennimmt und die Ergebnisse im Terminal ausgibt. Danach erweitern wir das Programm, indem wir eine grafische Benutzeroberfläche mit dem Tkinter-Modul erstellen.
Programmspezifikationen
Das Programm erfordert drei Eingaben vom Benutzer:
- Den Gesamtbetrag der Rechnung
- Den gewünschten Trinkgeldprozentsatz
- Die Anzahl der Personen, die sich die Rechnung teilen
Basierend auf diesen Eingaben berechnet das Programm folgende Ausgaben:
- Den Rechnungsanteil jeder Person
- Den Trinkgeldanteil jeder Person
- Den Gesamtbetrag, den jede Person zahlen muss
Der Algorithmus
Der Trinkgeld- und Teilungsrechner verwendet einen einfachen Algorithmus, der wie folgt aussieht:
- Eingabe der Werte:
rechnungsbetrag
,trinkgeld_prozentsatz
,anzahl_personen
- Berechnung des Trinkgeldbetrags:
trinkgeldbetrag
=rechnungsbetrag
*trinkgeld_prozentsatz
/ 100 - Berechnung des Rechnungsanteils pro Person:
rechnungsanteil
=rechnungsbetrag
/anzahl_personen
- Berechnung des Trinkgeldanteils pro Person:
trinkgeldanteil
=trinkgeldbetrag
/anzahl_personen
- Berechnung des Gesamtbetrags pro Person:
gesamtbeitrag
=rechnungsanteil
+trinkgeldanteil
Voraussetzungen
Um diesem Tutorial erfolgreich folgen zu können, sollten Sie grundlegende Kenntnisse der Programmiersprache Python besitzen. Es wird vorausgesetzt, dass Sie mit Konzepten wie Funktionen und Klassen vertraut sind. Darüber hinaus muss Python auf Ihrem Rechner installiert sein. Falls dies nicht der Fall ist, können Sie Python von der offiziellen Webseite herunterladen. Alternativ bietet wdzwdz auch einen Online-Python-Compiler an, mit dem Sie Ihren Python-Code direkt im Browser ausführen können, ohne eine lokale Umgebung einrichten zu müssen.
Erstellen des Rechners mit einer Kommandozeilenschnittstelle
Projektordner erstellen
Navigieren Sie zu einem leeren Ordner auf Ihrem System. In diesem Beispiel wird Ubuntu 22.04 genutzt. Um einen Ordner zu erstellen und zum Ordner zu navigieren, verwenden wir im Terminal folgenden Befehl:
mkdir tip-calculator && cd tip-calculator
Python-Datei erstellen
Als Nächstes erstellen wir die Skriptdatei, in welcher der Python-Code gespeichert wird. Hier wird der Befehl touch
verwendet:
touch main.py
Skriptdatei mit einem Texteditor öffnen
Öffnen Sie die Skriptdatei mit Ihrem bevorzugten Texteditor. In diesem Fall wird nano
verwendet, ein Terminal-basierter Editor.
nano main.py
Eingabe entgegennehmen
Fügen Sie am Anfang der Datei die folgenden Codezeilen hinzu:
# Eingabe des Rechnungsbetrags als Fließkommazahl
bill_amount = float(input("Rechnungsbetrag: "))
# Eingabe des Trinkgeldprozentsatzes als Fließkommazahl
tip_percentage = float(input("Trinkgeldprozentsatz: "))
# Eingabe der Anzahl der Personen als Ganzzahl
number_of_people = int(input("Anzahl der Personen: "))
Dieser Code nimmt die Eingaben entgegen und konvertiert die Datentypen von String zu Fließkommazahlen oder Ganzzahlen, je nach Bedarf.
Trinkgeldbetrag berechnen
Als Nächstes wird der Trinkgeldbetrag berechnet:
tip_amount = bill_amount * tip_percentage / 100
Rechnungs- und Trinkgeldanteile berechnen
# Berechnung des Rechnungsanteils jeder Person
bill_contribution = bill_amount / number_of_people
# Berechnung des Trinkgeldanteils jeder Person
tip_contribution = tip_amount / number_of_people
Gesamtbeitrag berechnen
Nun addieren wir die einzelnen Beiträge, um den Gesamtbetrag pro Person zu erhalten:
total_contribution = bill_contribution + tip_contribution
Ergebnisse ausgeben
Zuletzt werden die berechneten Ergebnisse für den Benutzer angezeigt:
# Anzeigen der Ergebnisse
print("Rechnungsanteil pro Person: ", bill_contribution)
print("Trinkgeldanteil pro Person: ", tip_contribution)
print("Gesamtbeitrag pro Person: ", total_contribution)
Testen des Rechners
Ihr vollständiges Skript sollte nun wie folgt aussehen:
# Eingabe des Rechnungsbetrags als Fließkommazahl
bill_amount = float(input("Rechnungsbetrag: "))
# Eingabe des Trinkgeldprozentsatzes als Fließkommazahl
tip_percentage = float(input("Trinkgeldprozentsatz: "))
# Eingabe der Anzahl der Personen als Ganzzahl
number_of_people = int(input("Anzahl der Personen: "))
tip_amount = bill_amount * tip_percentage / 100
# Berechnung des Rechnungsanteils jeder Person
bill_contribution = bill_amount / number_of_people
# Berechnung des Trinkgeldanteils jeder Person
tip_contribution = tip_amount / number_of_people
total_contribution = bill_contribution + tip_contribution
# Anzeigen der Ergebnisse
print("Rechnungsanteil pro Person: ", bill_contribution)
print("Trinkgeldanteil pro Person: ", tip_contribution)
print("Gesamtbeitrag pro Person: ", total_contribution)
Sie können Ihre Anwendung jetzt mit folgendem Befehl testen:
python3 main.py
Erstellen des Rechners mit einer grafischen Benutzeroberfläche (GUI)
Im folgenden Teil dieses Tutorials implementieren wir die gleiche Anwendung, jedoch mit einer grafischen Oberfläche. Dazu verwenden wir das Tkinter-Modul.
Vorbereitung
Tkinter ist ein Modul, welches in der Standardbibliothek von Python enthalten ist. Dies bedeutet, dass es standardmäßig installiert wurde, als Sie Python installiert haben. Auf einigen Linux-Systemen kann es vorkommen, dass Tkinter nicht vorinstalliert ist, um Speicherplatz zu sparen. In diesem Fall muss es manuell mit folgendem Befehl installiert werden:
sudo apt-get install python3-tk
Projektdatei erstellen
Erstellen Sie eine neue Datei, in welcher das Python-Skript für die GUI gespeichert wird. Öffnen Sie diese anschließend mit Ihrem bevorzugten Texteditor.
touch gui.py
Tkinter importieren
Importieren Sie das Tkinter-Modul, indem Sie folgende Zeile am Anfang der Datei hinzufügen:
import tkinter as tk
Benutzeroberfläche erstellen
Beginnen wir mit der Erstellung der Benutzeroberfläche:
# Fenster erstellen
window = tk.Tk()
# Fenstertitel erstellen
tk.Label(text="Trinkgeld- und Teilungsrechner").pack()
# Eingabefeld für Rechnungsbetrag
tk.Label(text="Rechnungsbetrag eingeben").pack()
ent_bill = tk.Entry(width=40)
ent_bill.pack()
# Eingabefeld für Trinkgeldprozentsatz
tk.Label(text="Trinkgeldprozentsatz eingeben").pack()
ent_tip = tk.Entry(width=40)
ent_tip.pack()
# Eingabefeld für Anzahl der Personen
tk.Label(text="Anzahl der Personen eingeben").pack()
ent_people = tk.Entry(width=40)
ent_people.pack()
# Schaltfläche zum Ausführen
btn_enter = tk.Button(text="Berechnen")
Der obige Code erstellt ein Fenster, in dem alle Elemente der Benutzeroberfläche enthalten sind. Ein Label dient als Titel des Fensters. Des Weiteren werden Labels und Eingabefelder für die drei Eingaben erstellt: rechnungsbetrag
, trinkgeld_prozentsatz
und anzahl_personen
. Abschließend wird eine Schaltfläche erstellt, auf die der Benutzer klickt, um die Berechnung zu starten.
Funktion zur Berechnung der Ausgaben
Erstellen Sie nun eine Funktion, welche die Verarbeitung des Klicks auf die Schaltfläche übernimmt. Diese Funktion nimmt die Werte aus den Eingabefeldern entgegen und berechnet die Ausgaben mit dem oben beschriebenen Algorithmus. Abschließend wird ein Label erstellt, um die Ausgabe anzuzeigen und das Fenster zu aktualisieren.
def handle_click(event):
# Erfassen der Eingaben aus den Feldern
# Umwandlung der Eingaben von String zu Float bzw. Integer
bill_amount = float(ent_bill.get())
tip_percentage = float(ent_tip.get())
number_of_people = int(ent_people.get())
# Berechnung des Trinkgeldbetrags
tip_amount = bill_amount * tip_percentage / 100
# Berechnung des Rechnungsanteils jeder Person
bill_contribution = bill_amount / number_of_people
# Berechnung des Trinkgeldanteils jeder Person
tip_contribution = tip_amount / number_of_people
# Berechnung des Gesamtbeitrags jeder Person
total_contribution = bill_contribution + tip_contribution
# Erstellung des Ausgabestrings
output = f'Rechnung pro Person: {bill_contribution} \n Trinkgeld pro Person: {tip_contribution} \n Gesamt pro Person: {total_contribution}'
# Label für die Ausgabe erstellen
tk.Label(text=output).pack()
# Aktualisieren des Fensters, um Änderungen anzuzeigen
window.update()
Der obige Code wurde durch Kommentare ergänzt, welche jeden wichtigen Schritt erklären.
Event-Handler mit Schaltfläche verbinden
Als nächstes verbinden wir den Event-Handler mit dem Click-Event der Schaltfläche. Das Click-Event einer Schaltfläche in Tkinter wird durch den String „<Button-1>“ dargestellt. Verwenden Sie die bind-Methode der Schaltfläche, um das Event an den Handler zu binden. Fügen Sie folgende Zeilen unter der Funktionsdefinition hinzu:
btn_enter.bind('<Button-1>', handle_click)
btn_enter.pack()
Um das Fenster aktiv zu halten, rufen Sie die mainloop
-Methode des Fensterobjekts auf.
window.mainloop()
Und das ist alles!
Testen des GUI Rechners
Sie können die Anwendung mit folgendem Befehl ausführen:
python3 gui.py
Dies sollte das Fenster wie folgt öffnen:
Sie können den Rechner mit Beispieldaten testen:
Abschluss
In diesem Tutorial haben wir einen Trinkgeld- und Teilungsrechner auf zwei unterschiedliche Arten erstellt. Zunächst mit einem Terminal-basierten CLI-Tool und danach mit einer grafischen Benutzeroberfläche, basierend auf Tkinter. Dieses Tutorial zeigt, wie man ein einfaches Python-Projekt realisiert. Wenn Sie Ihre Python-Kenntnisse auffrischen möchten, finden Sie auf Datacamp hilfreiche Kurse.
Als nächstes können Sie lernen, wie man einen Zufallskennwortgenerator in Python erstellt.