Übung 13 – for und range
Ziel: Sie wiederholen Zeilen eine feste Anzahl von Malen mit for und range und sammeln Ergebnisse in einer Variablen. Bearbeiten Sie die Aufgaben der Reihe nach und tragen Sie Tabellen und Programme in die Reflexion zu Sitzung 4 ein. Ihre Lösung darf anders aussehen – wichtig ist, dass sie für alle Tests das Richtige ausgibt.
1. for und range
for i in range(1, 4):
print(f"Runde {i}")Runde 1 Runde 2 Runde 3
Ausprobieren: Kopieren Sie den Code (Knopf „Kopieren“), führen Sie ihn aus und ändern Sie dann range(1, 4) in range(1, 11).
| Aufruf | Zahlen | Bedeutung |
|---|---|---|
range(5) | 0 1 2 3 4 | von 0 bis vor 5 |
range(1, 6) | 1 2 3 4 5 | von 1 bis vor 6 |
range(0, 10, 2) | 0 2 4 6 8 | in Zweierschritten |
range(5, 0, -1) | 5 4 3 2 1 | rückwärts |
while oder for? Wissen Sie vorher, wie oft wiederholt wird, nehmen Sie for. Wissen Sie nur, wann Schluss ist, nehmen Sie while.
2. Aufgaben
Aufgabe 2a · Einmaleins Pflicht, ca. 7 Min.
Ein Lernprogramm soll die Einmaleins-Reihe einer Zahl von 1 bis 10 ausgeben.
Ihre Aufgabe
- Tragen Sie für die Reihe
7ein, welche Zeilen an den genannten Stellen stehen müssen.Zeile Ausgabe (erwartet) 1.2.5.10. - Schreiben Sie
einmaleins.py: Es fragt mitWelche Reihe?nach der Zahl und gibt mitforundrangezehn Zeilen aus. - Die Ausgabe beginnt und endet für die Reihe 7 genau so:
Welche Reihe? 7 1 x 7 = 7 2 x 7 = 14 … 10 x 7 = 70
- Testen Sie mit
7und3und vergleichen Sie mit Ihrer Tabelle.
Fertig sind Sie, wenn genau zehn Zeilen erscheinen, die erste mit 1 x und die letzte mit 10 x.
Hilfen – erst öffnen, wenn Sie nicht weiterkommen (zum Öffnen anklicken):
Tipp anzeigen
Für die Zahlen 1 bis 10 brauchen Sie range(1, 11): Die Grenze gehört nicht dazu. Das Ergebnis rechnen Sie direkt im f-String aus: {i * zahl}.
Gerüst anzeigen
Ersetzen Sie jedes ___ durch den passenden Ausdruck.
zahl = int(input("Welche Reihe? "))
for i in range(___, ___):
print(f"{i} x {zahl} = {___}")Lösung anzeigen
| Zeile | Ausgabe |
|---|---|
| 1. | 1 x 7 = 7 |
| 2. | 2 x 7 = 14 |
| 5. | 5 x 7 = 35 |
| 10. | 10 x 7 = 70 |
zahl = int(input("Welche Reihe? "))
for i in range(1, 11):
print(f"{i} x {zahl} = {i * zahl}")Welche Reihe? 3 1 x 3 = 3 2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15 6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27 10 x 3 = 30
range(10) liefe i von 0 bis 9: Die erste Zeile wäre dann 0 x 3 = 0 und 10 x 3 fehlte.Aufgabe 2b · Summe von 1 bis n Pflicht, ca. 8 Min.
Ein Programm soll alle Zahlen von 1 bis n zusammenzählen, z. B. für n = 4: 1 + 2 + 3 + 4 = 10.
Ihre Aufgabe
- Rechnen Sie die erwarteten Summen von Hand aus.
n Summe (erwartet) Programm stimmt? 1510100 - Schreiben Sie
summe.py: Es fragt mitBis zu welcher Zahl?nach n und rechnet mit einer Sammelvariablensummeund einerfor-Schleife. - Geben Sie das Ergebnis genau so aus:
Bis zu welcher Zahl? 4 Die Summe von 1 bis 4 ist 10.
- Testen Sie alle vier Werte und vermerken Sie in der Tabelle, ob das Programm stimmt. Wie lange hätten Sie für n = 100 von Hand gebraucht?
Fertig sind Sie, wenn alle vier Summen stimmen – auch für n = 1.
Für Schnelle: Schreiben Sie treppe.py, das für eine Stufenzahl eine Treppe aus Sternchen ausgibt. Tipp: "*" * 3 ergibt ***.
Hilfen – erst öffnen, wenn Sie nicht weiterkommen (zum Öffnen anklicken):
Tipp anzeigen
Vor der Schleife steht summe = 0. In jeder Runde kommt die aktuelle Zahl dazu: summe = summe + zahl. Damit n selbst mitgezählt wird, endet range bei n + 1.
Gerüst anzeigen
Ersetzen Sie jedes ___ durch den passenden Ausdruck.
n = int(input("Bis zu welcher Zahl? "))
summe = ___
for zahl in range(1, ___):
summe = ___
print(f"Die Summe von 1 bis {n} ist {summe}.")Lösung anzeigen
| n | Summe |
|---|---|
1 | 1 |
5 | 15 |
10 | 55 |
100 | 5050 |
n = int(input("Bis zu welcher Zahl? "))
summe = 0
for zahl in range(1, n + 1):
summe = summe + zahl
print(f"Die Summe von 1 bis {n} ist {summe}.")Bis zu welcher Zahl? 100 Die Summe von 1 bis 100 ist 5050.
Für Schnelle:
n = int(input("Wie viele Stufen? "))
for stufe in range(1, n + 1):
print("*" * stufe)Wie viele Stufen? 4 * ** *** ****