7. Lektion: Wiederholungen
Wiederholungen[Bearbeiten | Quelltext bearbeiten]
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/Phyton gibt 2 solcher Strukturen:
for x in iterable:[Bearbeiten | Quelltext bearbeiten]
- Die For-Schleife in Python unterscheidet sich von anderen For-Schleifen
- Sie ist dafür gedacht Werte aus einer Datenstruktur (z.B. 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 im Schleifenkörper steht.
>>> liste = ['Hallo', 'Micropython', 'Python', 'Attraktor'] >>> for wort in liste: print(wort) Hallo Micropython Python Attraktor
Dieses Verfahren ist für die Verarbeitung von Daten aus einer Liste sehr praktisch wie man eben gesehen hat.
Wenn aber eine keine Daten aus einer List bearbeitet werden sollen, sondern eine Schleife z.B. 1000 mal durchlaufen werden soll, dann taugt sie nicht dafür. Deshalb gibt es die Generator-Funktion range().
range()[Bearbeiten | Quelltext bearbeiten]
- Python Funktion die ganze Zahlen liefert.
- range() kann auf drei Arten genutzt werden:
- Anzahl: range(anzahl) - Start = 0
- Bereich: range(start, stop+1)
- Abstand: range(start, stop+1, abstand) >> funktioniert nur in Python. In Micropython immer 1.
- Python erzeugt keine Liste mit range() sondern ersetzt die Liste durch die range-Funktion.
- Das spart Speicherplatz.
- Verhält sich wie eine Liste.
- Anders als bei einer Liste kann man sich aber nicht einfach alle Werte anzeigen lassen.
>>> range(10) range(0, 10) >>> a = range(10) >>> a range(0, 10)
- Die Werte müssen alle einzeln abgefragt werden. Dazu ist eine for-Schleife mit print() erforderlich.
>>> for x in range(10): print(x) 0 1 2 3 4 5 6 7 8 9
Übung:[Bearbeiten | Quelltext bearbeiten]
- Erstellt eine Liste mit den geraden Zahlen (range()) von 2 bis 20.
- Gebt mit einer for-Schleife die Quadrate dieser Zahlen aus.
- Gebt eine Liste aller UTF8-Zeichen aus.
while True:[Bearbeiten | Quelltext bearbeiten]
- while ist das zweite Schleifenkonstrukt von Phyton.
- 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:[Bearbeiten | Quelltext bearbeiten]
- 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:[Bearbeiten | Quelltext bearbeiten]
Nun wollen das bisher gelernt in 2 Programmen einsetzen.
Tannenbaum[Bearbeiten | Quelltext bearbeiten]
Es soll ein Programm geschrieben werden, das einen Tannenbaum aus "*" ausgibt.
Dazu müssen wir einen Text zentrieren:
.center()[Bearbeiten | Quelltext bearbeiten]
x = 'Hallo'.center(20)
print(x)
Schlechte Lösung: Tannenbaum_1.py
Gute Lösung: Tannenbaum_2.py
Zahlenraten[Bearbeiten | Quelltext bearbeiten]
Es soll eine Zahl zwischen 1 und 10 in 4 Versuchen erraten werden.
Hierfür brauchen wir Zufallszahlen:
urandom()[Bearbeiten | Quelltext bearbeiten]
>>> import urandom x = urandom.randint(1,10) print(x) 5
Zahlenraten[Bearbeiten | Quelltext bearbeiten]
Unser Zahlenraten-Spiel:
der Computer bestimmt durch Zufall eine Zahl zwischen 0 und 100.
Wir haben 7 Versuche, exakt diese Zahl zu erraten.
Bei jedem Rateversuch bekommen wir eine der folgenden 3 möglichen Reaktionen von unserem Spiel:
- deine geratene Zahl ist zu groß
- deine geratene Zahl ist zu klein
- Gewonnen! Die geheime Zahl ist nicht mehr geheim
Zahlenraten.py
[Bearbeiten | Quelltext bearbeiten]
Zurück zu Micropython Kurs 2023 - Teil 1
Zurück zur "Micropython Kurs 2023" Startseite
Zurück zur Programmieren Startseite
Zurück zur Wiki Startseite