Wiederholungen
In Programmen werden immer wieder Abschnitte des Programms mehrfach ausgeführt. Damit der Programmcode nur einmal geschrieben werden muss gibt es Schleifen die den Block mehrmals ausführen.
In Micro/Python gibt 2 solcher Strukturen:
for x in iterable:
- For in Python unterscheidet sich von anderen For-Schleifen
- ist dafür gedacht Werte aus einer Datenstruktur (Liste) zu bearbeiten.
- die Funktion einer C-typischen for-Schleife kann mit range() erreicht werden.
- Die Anzahl der Schleifen Durchläufe ist vorherbestimmt.
- pass ist erforderlich wenn kein Programmcode darunter steht.
range()
- Python Funktion die ganze Zahlen liefert.
- Anzahl: range(anzahl) - Start = 0
- Bereich: range(start, stop+1)
- Abstand: range(start, stop+1, abstand)
- Micropyton erzeugt keine Liste mit range() sondern ersetzt die Liste durch die range-Funktion.
- Das spart Speicherplatz.
- Verhält sich wie eine Liste.
Übung:
- Gebt verschiedene Zahlenbereiche mit range() aus.
- dazu ist eine for-Schleife mit print() erforderlich.
- Erstellt eine Liste mit den geraden Zahlen (range()) von 2 bis 20.
- Gebt mit einer for-Schleife die Quadrate dieser Zahlen aus.
while True:
- while ist das zweite Schleifenkonstrukt von Python.
- Bei der while-Schleife ist nicht vorbestimmt wie oft sie durchlaufen wird.
- Die Entscheidung wird vor jedem Durchlauf getroffen.
- Die while-Schleife ist Kopfgesteuert.
- Sie wird mindestens 0 mal durchlaufen.
- pass ist erforderlich wenn kein Programmcode darunter steht.
Übung:
- Entwerfe eine while-Schleife, die 10x "Hallo" ausgibt.
- Entwerfe eine while-Schleife, der in der Variablen runden die Anzahl der Durchläufe vorgegeben wird.
- Entwerfe eine while-Schleife die alle Quadratzahlen <100 ausgibt.
Übung:
Nun wollen das bisher gelernt in 2 Programmen einsetzen.
Tannenbaum
Es soll ein Programm geschrieben werden, das einen Tannenbaum aus "*" ausgibt.
Schlechte Lösung: Tannenbaum_1.py
Gute Lösung: Tannenbaum_2.py
Zahlenraten
Es soll eine Zahl zwischen 1 und 10 in 4 Versuchen erraten werden.
Hierfür brauchen wir Zufallszahlen:
urandom()
import urandom
x = urandom.randint(1,10)
print(x)
Zahlenraten.py