Schleifen
Besprechung der Hausaufgabe (bei 1c evtl. Quiz besprechen).
Lernziele heute
while
-Schleifen kennenlernen (bereits informell im Zeichenprogramm verwendet)- … und wie man diese sinnvoll verwendet
In Python gibt es drei Arten von Schleifen alias Möglichkeiten, einen Code-Block mehrmals auszuführen:
repeat
-Schleifen 1) - diese kennen wir bereits seit der ersten Doppellektion.while
-Schleifen - diese lernen wir heute kennenfor
-Schleifen - das kommt nach den Oster-Ferien
''while''-Schleifen
Motivierende Beispiele:
Solange Suppenteller nicht leer: Iss einen Löffel Suppe! Putze deine Zähne!
Was ist hier das Problem?
Solange Suppenteller nicht leer: Schreibe eine Email! Putze deine Zähne!
Eine while
-Schleife wird mit dem Schlüsselwort while
(für deutsch solange) eingeleitet und hat die folgende Struktur (beachte den Doppelpunkt und die Einrückung):
while <Ausführ-Bedingung>: # der sogenannte Kopf der Schleife <Code-Block, der so lange wiederholt ausgeführt wird, # der sogenannte Körper der Schleife wie die Ausführ-Bedingung erfüllt ist. Dieser Code-Block ist um vier Leerschläge eingerückt>
Vergleich mit if
-Selektion: Wenn man while
durch if
ersetzt, wird der eingerückte Code-Block genau einmal durchgeführt, wenn die Ausführ-Bedingung erfüllt ist. Bei der while
-Schleife wird dieser solange ausgeführt, wie die Ausführbedingung erfüllt ist.
Aufgabe 1, erste Erfahrungen mit ''while''-Schleifen
Einzelarbeit, ca. 8 Minuten
- Teste das folgende Programm.
- Was passiert und warum passiert dies, wenn du die letzte Zeile nicht einrückst?
- Was passiert, wenn du die beiden letzten Zeile miteinander vertauschst?
Was passiert, wenn du die Zeilex = x + 3
löschst (oder mit#
auskommentierst)?
x = 0 while x < 20: print(x) x = x + 3
Bearbeite dann die nächste Aufgabe.
Aufgabe 2, selbst ein Programm mit ''while''-Schleife schreiben
Einzelarbeit, ca. 5 Minuten
Schreibe ein Programm (mit einer while
-Schleife), das alle Zahlen zwischen 5 und 19 (einschliesslich der beiden Grenzen 5 und 19) ausgibt.
Bearbeite dann die nächste Aufgabe.
Aufgabe 3, Quadratzahlen ausgeben
Einzelarbeit, ca. 5 Minuten
Schreibe ein Programm (mit einer while
-Schleife), das vom Benutzer eine Zahl a
einliest und die Quadrate aller Zahlen zwischen 1 und a
ausgibt. Bei Eingabe 13 soll die Ausgabe wie folgt aussehen:
Hinweis: Schreibe zuerst ein Programm, dass alle Zahlen von 1 bis a
ausgibt. Ändere es danach so, dass statt jeder Zahl deren Quadrat ausgegeben wird.
1 4 9 16 25 36 49 64 81 100 121 144 169
Bearbeite dann die nächste Aufgabe.
Aufgabe 4, Turtle-Steuerung (etwas schwieriger)
Einzelarbeit, ca. 10 Minuten
Schreibe mit Hilfe einer while
-Schleife ein Programm, um die Turtle zu steuern. Das Programm soll den Benutzer jeweils zur Eingabe eines Wortes auffordern.
- Gibt der Benutzer
links
ein, soll die Turtle 50 Schritte vorwärts gehen und sich dann um 90 Grad nach links drehen. - Gibt der Benutzer
rechts
ein, soll die Turtle 50 Schritte vorwärts gehen und sich dann um 90 Grad nach rechts drehen. - Gibt der Benutzer
Ende
ein, so soll das Programm enden. - Bei allen andere Eingaben soll im Ausgabefenster (das Fenster in Tigerjython unter dem Programmcode)
unbekannter Befehl
ausgegeben werden.
Bonusaufgabe, Zahlen aufsummieren
Einzelarbeit, ca. 10 Minuten
Schreibe mit Hilfe einer while
-Schleife ein Programm, das vom Benutzer eine Zahl entgegennimmt und die Summe aller Zahlen von 1 bis zu dieser Zahl ausrechnet.
Beispiel: Bei Eingabe 10 soll die Ausgabe lauten:
Die Summe der Zahlen von 1 bis 10 ist 55
Hausaufgabe
Lerne auf die Prüfung!
- Beachte die Lösungsvorschläge, die stets am Ende der Web-Seiten stehen, meist in “Ausklapp-Boxen”. Verwende eventuell das Einzelschrittverfahren, um die Programme besser zu verstehen.
- Die Lernziele und Hinweise zur Prüfungsvorbereitung stehen am Ende der Hauptseite.
- Bitte melden, wenn Lösungen fehlen oder unklar sind oder sonstige Fragen aufkommen. Am schnellsten geht das über meine Email-Adresse an der Kanti am Burggraben
MeinVorname.MeinNachname@ksbg.ch
(Meine Brühl-Email-Adresse und Teams checke ich etwas seltener. Mein Name steht unten rechts auf dieser Seite.)
Zusammenfassung
Fragebox - auch zum Besprechen von Programmen während der Lektion (NICHT für Hausaufgaben)
Bitte einfach am Anfang des Programms oder der eingereichten Datei die Frage aufschreiben (mit oder ohne Hashtag #
als Kommentareinleitungszeichen am Zeilenanfang).