Haben Sie sich jemals gefragt, wie viel Ihre nächste Bahnfahrt kosten wird, und sich gewünscht, es gäbe ein einfaches Tool, um dies schnell herauszufinden? In diesem Artikel zeige ich Ihnen, wie Sie mit Python einen eigenen, praktischen Bahnpreisrechner von Grund auf programmieren können. Keine Vorkenntnisse in Programmierung nötig – wir beginnen bei den Grundlagen und führen Sie Schritt für Schritt durch den Prozess.
Warum einen eigenen Bahnpreisrechner programmieren?
Es gibt viele Online-Rechner für Bahntickets, aber das Erstellen eines eigenen bietet mehrere Vorteile:
- Individualisierung: Passen Sie den Rechner an Ihre spezifischen Bedürfnisse an. Berücksichtigen Sie beispielsweise spezielle Rabatte, die nur für Sie gelten.
- Offline-Nutzung: Nachdem Sie das Skript geschrieben haben, können Sie es offline nutzen, ohne auf eine Internetverbindung angewiesen zu sein.
- Lernen: Sie lernen die Grundlagen der Programmierung mit Python und verbessern Ihre Fähigkeiten im Problemlösen.
- Spaß: Es macht einfach Spaß, ein nützliches Tool selbst zu erstellen!
Vorbereitung: Python installieren
Bevor wir loslegen, stellen Sie sicher, dass Python auf Ihrem Computer installiert ist. Sie können die neueste Version von der offiziellen Python-Website (python.org) herunterladen. Laden Sie die Version herunter, die für Ihr Betriebssystem (Windows, macOS oder Linux) geeignet ist. Während der Installation ist es wichtig, dass Sie die Option „Add Python to PATH” aktivieren, damit Python über die Befehlszeile zugänglich ist.
Nach der Installation können Sie überprüfen, ob Python korrekt eingerichtet ist, indem Sie die Befehlszeile (unter Windows) oder das Terminal (unter macOS oder Linux) öffnen und den Befehl python --version
eingeben. Sie sollten die installierte Python-Version angezeigt bekommen.
Grundgerüst des Bahnpreisrechners
Legen wir los mit dem Grundgerüst unseres Python-Skripts. Öffnen Sie einen Texteditor Ihrer Wahl (z.B. VS Code, Sublime Text, Notepad++) und erstellen Sie eine neue Datei mit dem Namen `bahnpreisrechner.py`. Fügen Sie folgenden Code ein:
„`python
def berechne_preis(distanz, basispreis_pro_km=0.20):
„””
Berechnet den Bahnpreis basierend auf der Distanz.
Args:
distanz (float): Die zurückzulegende Distanz in Kilometern.
basispreis_pro_km (float): Der Basispreis pro Kilometer (Standard: 0.20).
Returns:
float: Der berechnete Preis.
„””
preis = distanz * basispreis_pro_km
return preis
def main():
„””
Hauptfunktion des Programms.
„””
try:
distanz = float(input(„Bitte geben Sie die Distanz in Kilometern ein: „))
if distanz <= 0:
print("Die Distanz muss positiv sein.")
return
preis = berechne_preis(distanz)
print(f"Der geschätzte Preis für Ihre Bahnfahrt beträgt: {preis:.2f} Euro")
except ValueError:
print("Ungültige Eingabe. Bitte geben Sie eine Zahl ein.")
if __name__ == "__main__":
main()
„`
Dieser Code definiert zwei Funktionen: `berechne_preis` und `main`. Die Funktion `berechne_preis` nimmt die Distanz und einen Basispreis pro Kilometer entgegen und berechnet den Preis. Die Funktion `main` fragt den Benutzer nach der Distanz, ruft die Funktion `berechne_preis` auf und gibt den berechneten Preis aus. Die `try…except` Blöcke behandeln mögliche Fehler, wenn der Benutzer keine gültige Zahl eingibt.
Um das Skript auszuführen, speichern Sie die Datei und öffnen Sie die Befehlszeile oder das Terminal. Navigieren Sie zu dem Ordner, in dem Sie die Datei gespeichert haben, und führen Sie den Befehl python bahnpreisrechner.py
aus.
Erweiterungen und Individualisierung
Das ist erst der Anfang! Wir können den Rechner noch um viele Funktionen erweitern:
Rabatte berücksichtigen
Fügen wir die Möglichkeit hinzu, Rabatte zu berücksichtigen. Zum Beispiel einen Rabatt für Studenten oder Senioren.
„`python
def berechne_preis(distanz, basispreis_pro_km=0.20, rabatt=0):
„””
Berechnet den Bahnpreis basierend auf der Distanz und berücksichtigt Rabatte.
Args:
distanz (float): Die zurückzulegende Distanz in Kilometern.
basispreis_pro_km (float): Der Basispreis pro Kilometer (Standard: 0.20).
rabatt (float): Der Rabatt in Prozent (z.B. 0.2 für 20% Rabatt).
Returns:
float: Der berechnete Preis.
„””
preis = distanz * basispreis_pro_km * (1 – rabatt)
return preis
def main():
„””
Hauptfunktion des Programms.
„””
try:
distanz = float(input(„Bitte geben Sie die Distanz in Kilometern ein: „))
if distanz <= 0:
print("Die Distanz muss positiv sein.")
return
rabatt = float(input("Bitte geben Sie den Rabatt in Prozent ein (z.B. 20 für 20%): ")) / 100
if rabatt 1:
print(„Der Rabatt muss zwischen 0 und 100 liegen.”)
return
preis = berechne_preis(distanz, rabatt=rabatt)
print(f”Der geschätzte Preis für Ihre Bahnfahrt beträgt: {preis:.2f} Euro”)
except ValueError:
print(„Ungültige Eingabe. Bitte geben Sie eine Zahl ein.”)
if __name__ == „__main__”:
main()
„`
Wir haben der Funktion `berechne_preis` einen neuen Parameter `rabatt` hinzugefügt und die Berechnung entsprechend angepasst. Die `main` Funktion fragt nun auch nach dem Rabatt in Prozent.
Klassen berücksichtigen (1. Klasse, 2. Klasse)
Erweitern wir den Rechner, um zwischen der 1. und 2. Klasse zu unterscheiden.
„`python
def berechne_preis(distanz, klasse=”2″, basispreis_pro_km_2=0.20, basispreis_pro_km_1=0.30, rabatt=0):
„””
Berechnet den Bahnpreis basierend auf Distanz, Klasse und Rabatt.
Args:
distanz (float): Die zurückzulegende Distanz in Kilometern.
klasse (str): Die gewünschte Klasse („1” oder „2”).
basispreis_pro_km_2 (float): Der Basispreis pro Kilometer für die 2. Klasse (Standard: 0.20).
basispreis_pro_km_1 (float): Der Basispreis pro Kilometer für die 1. Klasse (Standard: 0.30).
rabatt (float): Der Rabatt in Prozent (z.B. 0.2 für 20% Rabatt).
Returns:
float: Der berechnete Preis.
„””
if klasse == „1”:
preis = distanz * basispreis_pro_km_1 * (1 – rabatt)
elif klasse == „2”:
preis = distanz * basispreis_pro_km_2 * (1 – rabatt)
else:
return None # Ungültige Klasse
return preis
def main():
„””
Hauptfunktion des Programms.
„””
try:
distanz = float(input(„Bitte geben Sie die Distanz in Kilometern ein: „))
if distanz <= 0:
print("Die Distanz muss positiv sein.")
return
klasse = input("Bitte geben Sie die gewünschte Klasse ein (1 oder 2): ")
if klasse not in ("1", "2"):
print("Ungültige Klasse. Bitte geben Sie 1 oder 2 ein.")
return
rabatt = float(input("Bitte geben Sie den Rabatt in Prozent ein (z.B. 20 für 20%): ")) / 100
if rabatt 1:
print(„Der Rabatt muss zwischen 0 und 100 liegen.”)
return
preis = berechne_preis(distanz, klasse=klasse, rabatt=rabatt)
if preis is not None:
print(f”Der geschätzte Preis für Ihre Bahnfahrt in der {klasse}. Klasse beträgt: {preis:.2f} Euro”)
else:
print(„Fehler bei der Preisberechnung.”)
except ValueError:
print(„Ungültige Eingabe. Bitte geben Sie eine Zahl ein.”)
if __name__ == „__main__”:
main()
„`
Wir haben der Funktion `berechne_preis` Parameter für die Klassenwahl und die entsprechenden Basispreise hinzugefügt. Die `main` Funktion fragt nach der gewünschten Klasse und übergibt diese an die `berechne_preis` Funktion.
Zusätzliche Funktionen
Hier sind einige weitere Ideen, wie Sie Ihren Bahnpreisrechner verbessern können:
- Integration von Fahrplänen: Verbinden Sie Ihren Rechner mit einer API, die Echtzeit-Fahrpläne liefert.
- GUI (Graphical User Interface): Erstellen Sie eine grafische Benutzeroberfläche mit Bibliotheken wie Tkinter oder PyQt für eine benutzerfreundlichere Bedienung.
- Speichern von Präferenzen: Speichern Sie die bevorzugten Rabatte oder die Standardklasse in einer Konfigurationsdatei.
Fazit
Wir haben in diesem Artikel gesehen, wie Sie mit Python einen einfachen, aber praktischen Bahnpreisrechner von Grund auf programmieren können. Sie haben gelernt, wie man Funktionen definiert, Eingaben vom Benutzer entgegennimmt und Berechnungen durchführt. Die hier gezeigten Beispiele sind nur ein Ausgangspunkt. Mit etwas Kreativität und den richtigen Werkzeugen können Sie Ihren Rechner an Ihre individuellen Bedürfnisse anpassen und zu einem wertvollen Helfer im Alltag machen. Das Programmieren solcher kleiner Projekte ist nicht nur nützlich, sondern auch eine tolle Möglichkeit, Ihre Python-Kenntnisse zu vertiefen und neue Fähigkeiten zu erlernen. Viel Spaß beim Coden!