Sollten attraktiv und verständlich sein.
while
-Schleifen kennenlernen (bereits informell im Zeichenprogramm verwendet)for
-Schleifen kennenlernenIn Python gibt es drei Arten von Schleifen:
repeat
-Schleifen 1)while
-Schleifenfor
-Schleifen
Was eine repeat
-Schleife ist, wissen wir seit der ersten Doppellektion.
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.
Einzelarbeit, ca. 10 Minuten
x = x + 3
löschst (oder mit #
auskommentierst)?while
-Schleife verwendet werden.while
-Schleife verwendet werden.x = 0 while x < 20: x = x + 3 print(x)
Einzelarbeit, ca. 10 Minuten
Im Programm aus der vorigen Ausgabe ist es nicht so schön, dass jede neue Zahl in einer neuen Zeile ausgegeben wird.
Wenn man alle Zahlen in einer Zeile ausgeben möchte, kann man dies beispielsweise erreichen, indem man die Zeichenkette, die am Ende ausgegeben werden soll, innerhalb der while
-Schleife schrittweise aufbaut und erst nach Beendigung der Schleife ausgibt. Man beginnt den Aufbau mit der “leeren Zeichenkette”.
x = 0 ausgabeZeichenkette = "" # Zeichenkette der Länge Null (auch leere Zeichenkette genannt); zwischen den beiden begrenzenden Anführungszeichen steht kein Zeichen while x < 20: x = x + 3 ausgabeZeichenkette = ausgabeZeichenkette + str(x) + ", " print(ausgabeZeichenkette)
Ändere dieses Programm so, dass vom Benutzer eine Zahl eingelesen wird und dann alle Quadrate der Zahlen von 1 bis zu dieser Zahl in einer Zeile ausgegeben werden (bitte weiterhin die while
-Schleife verwenden).
Bei Eingabe 10 soll die Ausgabe wie folgt aussehen:
1, 4, 9, 16, 25, 36, 49, 64, 81, 100,
Die Funktion range
(deutsch Bereich) nimmt als Parameter eine ganze Zahl entgegen und liefert eine sogenannte Liste. Teste dies am folgenden Programm:
x = range(11) print(x) print(range(6))
Beachte, dass die Liste bei 0 startet (und NICHT bei 1) und NICHT beim angegebenen Parameter endet, sondern eine Zahl vorher.
Es ist auch möglich, der Funktion range
zwei Parameter zu übergeben (der erste sollte kleiner sein als der zweite). Dann wird eine Liste erzeugt, die beim ersten Parameter startet und eins vor dem zweiten Parameter endet. Teste dies am folgenden Programm
x = range(4, 11) print(x) print(range(-3, 6))
Mit anderen Worten liefern range(13)
und range(0, 13)
dieselbe Liste.
Einzelarbeit, ca. 10 Minuten
Teste das folgende Programm.
for x in range(6): # der sogenannte Kopf der Schleife print(x) # der sogenannte Körper der Schleife
Beim Ausführen dieser for
-Schleife nimmt die sogenannte Laufvariable x
nacheinander alle Werte der Liste range(6)
an, wobei jeweils der Schleifenkörper ausgeführt wird.
range(6)
in range(4, 13)
.x
in zahl
und gib in jedem Schleifendurchlauf das Quadrat von zahl
aus.for
-Schleife auch als while
-Schleife realisieren kann.Einzelarbeit, ca. 10 Minuten
Verstehe das folgende Programm.
for i in range(5): print(i * " " + "H" + (5-i) * "all" + "o Ba" + i * "na")
Schreibe nun ein Programm, das vom Benutzer eine Zahl n
entgegennimmt und dann einen Baum mit n
“Blattschichten” und Stammlänge 2
zeichnet.
Bei Eingabe 5 soll die Ausgabe so aussehen:
X XXX XXXXX XXXXXXX XXXXXXXXX X X
Einzelarbeit, ca. 10 Minuten
Schreibe mit Hilfe einer if
-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.
Einzelarbeit, ca. 5 Minuten
Es gibt in Python drei Arten der Divison in Python, nämlich /
, //
und %
.
Verstehe diese, indem du mit dem folgenden Programm herumspielst; ändere etwa die Zahlen!
x = 23 / 5 y = 23 // 5 z = 23 % 5 print(x) print(y) print(z)
Einzelarbeit, ca. 10 Minuten
Schreibe ein Programm, das vom Benutzer eine Zahl (damit meinen wir eine positive Nicht-Kommazahl) einliest und all ihre Teiler ausgibt.
Beispiel: Bei Eingabe 24 soll die Ausgabe wie folgt aussehen.
Die Teiler von 24 sind: 1, 2, 3, 4, 6, 8, 12, 24,
Lerne auf die Prüfung!
MeinVorname.MeinNachname@ksbg.ch
(Meine Brühl-Adresse und Teams checke ich nicht so oft. Mein Name steht unten rechts auf dieser Seite.)
Verwende while
- oder if
-Schleife zur Turtle-Steuerung.
Bitte einfach am Anfang des Programms oder der eingereichten Datei die Frage aufschreiben (mit oder ohne Hashtag #
als Kommentareinleitungszeichen am Zeilenanfang).