Einführung in das Programmieren mit Python – (K)eine lange WHILE haben
Der Vorteil von Computerprogrammen ist, dass man wiederkehrende Aufgaben automatisieren kann:
Ein manuelles Beispiel
Bitte führe die folgenden Anweisungen auf einem Blatt Papier genau so aus, wie unten beschrieben:
- Vorbereitung: Male auf dein Blatt eine Tabelle mit zwei Spalten; über die linke Spalte schreibst du den Buchstaben n, über die rechte den Buchstaben f
- Schritt 1: In die Zeile unter der Überschrift schreibst du links und rechts die Zahl 1
- Schritt 2: Darunter schreibst du links die Zahl 2 und rechts noch einmal die 1.
- Schritt 3: In die Zeile darunter schreibst du links die nächste natürliche Zahl und rechts die Summe aus den beiden darüber liegenden Zeilen.
- Schritt 4 – 16: wiederhole Schritt 3
Kann man das elektronisch abbilden ?
Wir versuchen das einmal zu codieren; gib jetzt Schritt für Schritt ein und beobachte, was geschieht …..
Beispiel:
# Demo: fibo1.py
# Vorbereitung
print("{} \t {}".format("n", "f"))
# Schritt 1
n=1
f=1
print("{} \t {}".format(n, f))
# Schritt 2
n=2
f=1
print("{} \t {}".format(n, f))
# Schritt 3
n=n+1
# Versuche jetzt selbst weiterzumachen !
# Die erste nicht eingerückte Zeile wird wieder immer ausgeführt.
print("Fertig.")
Versuche jetzt Schritt 3 so zu gestalten, dass du ihn für alle weiteren Schritte nur noch kopieren müsstest, OHNE am Code noch etwas zu verändern.
TIPP: Merke dir die letzte und die vorletzte Zahl !
Das ist natürlich ziemlich unpraktisch und das macht so auch niemand, denn es geht auch einfacher:
WHILE heißt „solange“
Eine Programm-„Schleife“ ist ein Ausdruck, der (eine Zeit lang) immer wiederholt wird. Der wichtigste Schleifenbefehl ist while <Bedingung> : Der anschließend eingerückte Teil wird so lange wiederholt, bist die Bedingung nicht mehr zutrifft.
Teste das folgende Programm aus.
1. Was musst du verändern, dass die Schleife an der richtigen Stelle abbricht ?
2. Versuche das Programm dahingehend zu verändern, dass zusätzlich auch noch die rechte Spalte bedient wird.
# Demo: fibo2.py
# Vorbereitung
print("{} \t {}".format("n", "f"))
# Schritt 1
n=1
f=1
print("{} \t {}".format(n, f))
# Schritt 2
n=2
f=1
print("{} \t {}".format(n, f))
# Diese Schleife versorgt erst einmal nur die linke Spalte ....
# Alles, was nach der WHILE-Zeile eingerückt ist, wird so lange wiederholt,
# bis n die 16 übersteigt, oder ... ?!.
while n<=16 :
# Schritt 3 - 16
n=n+1
print("{} \t {}".format(n, ""))
# Die erste nicht eingerückte Zeile wird nur einmal ausgeführt.
print("Fertig.")
Dies ist dein zweites Programm, das du in die Cloud hochladen kannst: Verwende als Programmnamen <name>-fibo3.py. Hier ist der Link zum Hochladen: https://capello.info/christian/informatik/python1/#uploads
Verbesserung
Das folgende Programm ist eine Verbesserung unseres Zahlenratespiels: Das Programm wird so lange wiederholt, bis die richtige Zahl geraten wurde.
Ergänze das Programm so, dass du zum Schluss noch die Anzahl der Versuche ausgibst.
# Demo: If - ratemal6.py
# Der Programmierer weiß immer noch das Ergebnis:
richtigezahl=34
falschgeraten=True
while falschgeraten :
geratenezahl=int(input("Rate eine Zahl zwischen 1 und 40: "))
if geratenezahl == richtigezahl :
# Die eingerückten Zeilen werden nur ausgeführt, wenn die Bedingung stimmt.
# achte darauf, dass sie genau untereinander anfangen !
print("Du hast richtig geraten !")
falschgeraten=False
elif geratenezahl < richtigezahl :
# dieser Block wird nur ausgeführt, wenn die geratene Zahl kleiner ist
print("Die gesuchte Zahl ist größer.")
print("Versuch's noch mal !")
else:
# trifft keine der oben genannten Bedingungen zu,
# wird dieser Block ausgeführt
print("Die gesuchte Zahl ist kleiner.")
print("Versuch's noch mal !")
# Die erste nicht eingerückte Zeile wird wieder immer ausgeführt.
print("Gutgemacht")
Statt das Programm abzutippen, kannst du es hier auch herunterladen.
Dies ist dein drittes Programm, das du in die Cloud hochladen kannst: Verwende als Programmnamen <name>-ratemal6plus.py. Hier ist der Link zum Hochladen: https://capello.info/christian/informatik/python1/#uploads
Mehr
- Mehr zu diesem Thema finden Sie unter: https://python.swaroopch.com/control_flow.html