Bedingte Ausführung und Schleifen

Notizen

  • Die Schleifenkonstruktionen mit for oder while können in Python mit weiteren Befehlen modifiziert werden:

    • Der Befehl continue beendet den aktuellen Schleifenzyklus und setzt am Schleifenbeginn wieder ein. Bei for-Schleifen wird dabei die Schleifenvariable auf den nächsten Wert gesetzt.

    • Der Befehl break innerhalb der Schleife beendet die Schleifenausführung sofort und setzt das Programm hinter dem Schleifenblock fort.

    • Schleifen können auch ineinander verschachtelt sein. Beispielsweise kann das Innere einer for-Schleife eine weitere for- oder while-Schleife enthalten. Dann beziehen sich continue und break immer auf die innerste Schleife, die beim Ausführen von continue und break gerade läuft.

  • Häufig findet man in Programmen den Schleifenbeginn while True:. An sich sollten diese Schleifen niemals beendet werden — allerdings taucht dann im Schleifenkörper in der Regel ein break-Befehl auf, der ausgeführt wird, wenn eine bestimmte Bedingung erfüllt ist; meisten eine, die sich nur schlecht schon im Schleifenkopf abfragen lässt. Das ist zum Beispiel häufig der Fall, wenn Nutzereingaben so lange wiederholt werden sollen, bis der Nutzer einen gültigen Wert eingibt.

    while True:
        eingabe = input("Gib X ein, um die Schleife zu beenden!")
        if eingabe == "X":
            break
        else:
            print("Schleife wird fortgesetzt.")
    
    print("while-Schleife wurde beendet.")
    

Aufgaben

  • Bearbeiten Sie die folgende Aufgabe 03 und speichern Sie das Ergebnis in Ihrem pythonanywhere-Account! Sie können den nachfolgenden Text der Aufgabenstellung auch direkt in den Editor bei pythonanywhere kopieren. (Muster 03)

    aufgabe_03_zahlenraten.py
    # Schreiben Sie ein Programm, das eine ganze Zahl
    # zwischen 1 und 1000 errät, die sie sich gedacht haben.
    # Dabei soll es wiederholt die Frage stellen:
    
    # "Ist die gesuchte Zahl größer als ...?"
    
    # Tipp: Das Programm kann Buch führen über das aktuell
    # mögliche Intervall, in dem die Antwort liegen kann.
    # Am Anfang reicht das Intervall von 1 bis 1000. Nach der
    # Antwort "nein" auf die Frage "Ist die Zahl größer als 500?"
    # reicht das Intervall nur noch von 1 bis 500 - und so weiter.
    
    # Versuchen Sie, mit möglichst wenig Fragen auszukommen.
    # Wie viele Fragen braucht die bestmögliche Strategie?
    
  • Lesen Sie Kapitel 8 „Strings“ im Buch und bearbeiten Sie Aufgabe 8.1.

  • Bonusaufgabe 1 (Bonusaufgaben müssen nicht bearbeitet werden, aber sie können Hausaufgaben ersetzen.): Schreiben Sie ein Programm, das Nullstellen findet!

    bonus_b1_nullstellen.py
    # Schreiben Sie ein Programm, das näherungsweise
    # die Nullstelle einer Funktion f in einem Intervall (a,b) ermittelt,
    # das der Nutzer vorgibt.
    # Vereinfachend können Sie annehmen, dass die Funktion
    # kontinuierlich ist und im Intervall (a,b) genau eine Nullstelle x0 hat,
    # so dass a < x0 < b erfüllt ist.
    # Tipp: Erinnert sie das Problem an das Zahlenratespiel?
    
    def f(x): # diese Funktion kann man dann beliebig ersetzen und die Nullstellenbestimmung funktioniert immer noch
        y = x**3 + 27*x**2 + 71*x - 483
        return y
    
    a = float(input("Untergrenze:"))
    b = float(input("Obergrenze:"))
    
    # Hier kommt ihr Code hin
    
    print("Die Nullstelle ist ungefähr:", x0)