Bedingte Ausführung und Schleifen¶
Notizen¶
Die Schleifenkonstruktionen mit
for
oderwhile
können in Python mit weiteren Befehlen modifiziert werden:Der Befehl
continue
beendet den aktuellen Schleifenzyklus und setzt am Schleifenbeginn wieder ein. Beifor
-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 weiterefor
- oderwhile
-Schleife enthalten. Dann beziehen sichcontinue
undbreak
immer auf die innerste Schleife, die beim Ausführen voncontinue
undbreak
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 einbreak
-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)
# 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!
# 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)