Python für Anfänger · Teil 8TutorialEinsteiger

Python

Python für Anfänger – Teil 8: while-Schleifen und einfache Menüs

Wiederhole Abläufe bis zu einer Abbruchbedingung und baue ein erstes Konsolenmenü.

Veröffentlicht am

3 Minuten Lesezeit

Voraussetzungen

Du kennst die Inhalte aus Teil 7 und arbeitest mit einem lokalen Python-3-Interpreter (ab Python 3.10), beispielsweise in Thonny.

Das lernst du in dieser Lektion

  • While-Bedingungen formulieren.
  • Schleifen mit break verlassen.
  • Continue bewusst verwenden.

Wiederholen, solange etwas gilt

Eine for-Schleife passt gut zu einer bekannten Zahlenfolge. Bei einer Benutzereingabe wissen wir häufig noch nicht, wie viele Wiederholungen nötig sind. Dafür eignet sich while:

versuch = 1
while versuch <= 3:
    print(f"Versuch {versuch}")
    versuch += 1
print("Fertig")

Die Bedingung wird vor jedem Durchlauf geprüft. Ist sie bereits am Anfang falsch, wird der Rumpf überhaupt nicht ausgeführt. Hier verändert versuch += 1 den Zähler, bis die Bedingung falsch wird.

Ein Menü bauen

Speichere diesen eigenständigen Code als menue.py:

while True:
    print("1: Materialbedarf anzeigen")
    print("0: Beenden")
    auswahl = input("Deine Auswahl: ")

    if auswahl == "1":
        print("Vier Teile zu je 18.5 g benötigen 74.0 g.")
    elif auswahl == "0":
        print("Bis zum nächsten Mal!")
        break
    else:
        print("Diese Auswahl gibt es nicht.")

while True hat eine dauerhaft wahre Bedingung. Der gezielte Ausstieg erfolgt durch break. input() liefert einen String, deshalb vergleichen wir mit "1" und "0", nicht mit den Zahlen 1 und 0. Nach einer normalen Auswahl zeigt das Programm das Menü erneut.

Einen Durchlauf überspringen

continue springt direkt zur nächsten Prüfung der Schleifenbedingung. Du kannst es beispielsweise nutzen, um eine leere Eingabe zurückzuweisen:

while True:
    text = input("Text eingeben oder 0 zum Beenden: ")
    if text == "0":
        break
    if text == "":
        print("Bitte etwas eingeben.")
        continue
    print(f"Übernommen: {text}")

Die Ausgabe „Übernommen“ wird bei einer leeren Eingabe übersprungen. Ein continue ist nicht immer nötig; verwende es nur, wenn es den Ablauf klarer macht.

Endlosschleifen erkennen

Bei einem Zähler muss ein erreichbarer Schritt die Bedingung verändern. Bei einem Menü muss ein erreichbarer Zweig aussteigen. Fehlt beides, läuft die Schleife unbegrenzt. Stoppe ein solches Programm mit Thonnys Stopp-Schaltfläche beziehungsweise der Unterbrechen-Funktion. In vielen Terminals dient Strg+C dazu.

Teste ein Menü immer mit gültiger Auswahl, unbekannter Auswahl und dem Beenden-Befehl. Damit prüfst du die wichtigsten Wege durch das Programm.

Mitmach-Aufgabe

Erweitere das Menü um Auswahl 2. Sie soll den Hinweis „Bestand: PLA, 750 g“ ausgeben. Eine unbekannte Auswahl darf das Programm nicht beenden.

Versuche die Aufgabe zuerst selbst. Vergleiche danach deinen Ansatz mit der Musterlösung. Andere Lösungen sind möglich, wenn sie dieselben Anforderungen erfüllen.

Musterlösung

while True:
    print("1: Bedarf | 2: Bestand | 0: Ende")
    auswahl = input("Auswahl: ")
    if auswahl == "1":
        print("Bedarf: 74.0 g")
    elif auswahl == "2":
        print("Bestand: PLA, 750 g")
    elif auswahl == "0":
        break
    else:
        print("Unbekannte Auswahl")

Ergebnis prüfen

Teste nacheinander 2, 9 und 0. Zuerst erscheint der Bestand, danach der Fehlerhinweis; erst 0 beendet das Programm.

Typische Stolperstellen

break beendet die innerste umgebende Schleife. Ein continue vor der Zähleränderung kann ungewollt zu einer Endlosschleife führen.

Was du jetzt kannst

  • While-Bedingungen formulieren.
  • Schleifen mit break verlassen.
  • Continue bewusst verwenden.

Passendes Cheatsheet

Zum Nachschlagen: Cheatsheet 06 – Schleifen in Python. Dort findest du auch den vorhandenen PDF-Download.

Im nächsten Teil

In Teil 9 geht es um Listen und mehrere Messwerte. Verwalte mehrere Werte in einer Liste, verändere ihren Inhalt und berechne einfache Kennwerte.

← Teil 7 · Kursübersicht · Weiter zu Teil 9 →