So erstellen Sie einen Tip- und Split-Rechner in Python

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:

  1. Eingabe der Werte: rechnungsbetrag, trinkgeld_prozentsatz, anzahl_personen
  2. Berechnung des Trinkgeldbetrags: trinkgeldbetrag = rechnungsbetrag * trinkgeld_prozentsatz / 100
  3. Berechnung des Rechnungsanteils pro Person: rechnungsanteil = rechnungsbetrag / anzahl_personen
  4. Berechnung des Trinkgeldanteils pro Person: trinkgeldanteil = trinkgeldbetrag / anzahl_personen
  5. 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.