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.")

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.

# 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.

# 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