Aufwärmen · Aufgabe 1 von 7
Aufwärmen aus B1.5: Was gibt diese while-Schleife aus?
i = 0
while i < 3:
print(i, end=" ")
i = i + 1// B2.2 · ca. 29 Min. · Einstieg
Nach dieser Lektion durchlaufen Sie Listen und Strings mit for, zählen mit range(start, stop, step), nummerieren mit enumerate und ändern eine Liste sicher, während Sie sie durchlaufen.
Danach können Sie
Aufwärmen · Aufgabe 1 von 7
i = 0
while i < 3:
print(i, end=" ")
i = i + 1Vorhersagen · Aufgabe 2 von 7
total = 0
for n in [3, 5, 7]:
total = total + n
print(total)Üben · Aufgabe 3 von 7
for i in range(1, ____):
print(i, end=" ")Üben · Aufgabe 4 von 7
Üben · Aufgabe 5 von 7
names = ["Ada", "Linus", "Guido"]
for number, name in enumerate(names, start=1):
if name == "Linus":
print(number)Denksport · Aufgabe 6 von 7
numbers = [1, 2, 2, 3]
for n in numbers:
if n == 2:
numbers.remove(n)
print(numbers)Anwenden · Aufgabe 7 von 7
Prüfen Sie Ihr Ergebnis anhand dieser Liste
Lesen Sie das ausgearbeitete Beispiel und lösen Sie dann die Übungen. Ihr Code läuft in Ihrem Browser oder auf Ihrem Computer und wird nie hochgeladen.
Ausgearbeitetes Beispiel
Ein Kassenbon führt Artikel und Preise eines Einkaufs in zwei Listen mit derselben Reihenfolge. Das Programm nummeriert jede Zeile mit enumerate, addiert die Summe und prüft dann mit einem range mit Schrittweite jeden zweiten Artikel. Ändern Sie die Listen oben und starten Sie es erneut.
main.py
# Items and their prices, in the same order.
items = ["bread", "milk", "apples", "coffee"]
prices = [2.49, 1.19, 3.5, 6.99]
total = 0.0
for number, item in enumerate(items, start=1):
price = prices[number - 1]
print(number, item, price)
total = total + price
print("Items:", len(items))
print("Total:", round(total, 2))
# Every second item, from the first: range with a step.
for i in range(0, len(items), 2):
print("Checked:", items[i])
Ausführen mit
python main.pyAusgabe
1 bread 2.49
2 milk 1.19
3 apples 3.5
4 coffee 6.99
Items: 4
Total: 14.17
Checked: bread
Checked: applesTab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser Python herunter (bis zu 6.5 MB) und speichert es im Cache. Ihr Code bleibt auf Ihrem Gerät.
Übung 1 von 3
Das Programm liest eine ganze Zahl n. Geben Sie die Summe 1 + 2 + … + n aus, mit einer for-Schleife über range. Bei 5 lautet die Ausgabe 15, bei 100 lautet sie 5050 und bei 0 lautet sie 0. Achten Sie darauf, dass n selbst dazugehört.
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser Python herunter (bis zu 6.5 MB) und speichert es im Cache. Ihr Code bleibt auf Ihrem Gerät.
Laufen Sie mit for i in range(…) und addieren Sie i in der Schleife zu total.
range hört vor seinem stop-Wert auf. Mit welchem stop ist das letzte i gleich n?
for i in range(1, n + 1): total = total + i
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
n = int(input())
total = 0
for i in range(1, n + 1):
total = total + i
print(total)
Installieren Sie Python 3.14 oder neuer. Speichern Sie diese Dateien in einem Ordner, öffnen Sie dort ein Terminal und führen Sie die Befehle unten aus.
main.py
n = int(input())
total = 0
# Add every number from 1 to n to total.
print(total)
test_main.py
from learnrun import run_main
def total_for(n):
return run_main(f"{n}\n").strip()
def test_five():
"""1 bis 5 ergibt 15"""
got = total_for(5)
assert got == "15", f"bei 5 gab das Programm {got!r} aus, erwartet: '15'"
def test_hundred():
"""1 bis 100 ergibt 5050"""
got = total_for(100)
assert got == "5050", f"bei 100 gab das Programm {got!r} aus, erwartet: '5050' (ist n selbst dabei?)"
def test_zero_and_one():
"""0 ergibt 0 und 1 ergibt 1"""
got = total_for(0), total_for(1)
assert got == ("0", "1"), f"bei 0 und 1 gab das Programm {got!r} aus, erwartet: ('0', '1')"
Unter macOS und Linux tippen Sie python3, wo in diesen Befehlen python steht, wie in der ersten Lektion.
Programm ausführen:
python main.pyPrüfungen ausführen (learnrun.py muss im selben Ordner liegen):
python learnrun.py testlearnrun.py herunterladenÜbung 2 von 3
Das Programm liest eine ganze Zahl n. Zählen Sie von n bis 1 herunter, eine Zahl pro Zeile, und geben Sie danach liftoff aus. Verwenden Sie range mit negativer Schrittweite. Bei 3 erscheinen 3, 2, 1 und liftoff in vier Zeilen; bei 0 nur liftoff.
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser Python herunter (bis zu 6.5 MB) und speichert es im Cache. Ihr Code bleibt auf Ihrem Gerät.
range(start, stop, step) mit einem step von -1 zählt abwärts.
stop gehört nicht dazu. Um bei 1 zu enden, muss stop also 0 sein.
for i in range(n, 0, -1): print(i), danach print("liftoff") nach der Schleife, nicht eingerückt.
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
n = int(input())
for i in range(n, 0, -1):
print(i)
print("liftoff")
Installieren Sie Python 3.14 oder neuer. Speichern Sie diese Dateien in einem Ordner, öffnen Sie dort ein Terminal und führen Sie die Befehle unten aus.
main.py
n = int(input())
# Print n, n - 1, ..., 1 on separate lines.
print("liftoff")
test_main.py
from learnrun import run_main
def countdown(n):
return run_main(f"{n}\n").split()
def test_three():
"""3 zählt 3, 2, 1, liftoff"""
got = countdown(3)
assert got == ["3", "2", "1", "liftoff"], f"bei 3 gab das Programm {got!r} aus"
def test_ends_at_one():
"""Der Countdown endet bei 1, nicht bei 0"""
got = countdown(5)
assert got == ["5", "4", "3", "2", "1", "liftoff"], f"bei 5 gab das Programm {got!r} aus"
def test_zero():
"""Bei 0 erscheint nur liftoff"""
got = countdown(0)
assert got == ["liftoff"], f"bei 0 gab das Programm {got!r} aus, erwartet: ['liftoff']"
Unter macOS und Linux tippen Sie python3, wo in diesen Befehlen python steht, wie in der ersten Lektion.
Programm ausführen:
python main.pyPrüfungen ausführen (learnrun.py muss im selben Ordner liegen):
python learnrun.py testlearnrun.py herunterladenÜbung 3 von 3
Das Programm liest ein Wort. Geben Sie aus, wie viele seiner Buchstaben Vokale sind: a, e, i, o oder u, klein oder groß. Durchlaufen Sie den String mit for und prüfen Sie jeden Buchstaben mit in "aeiouAEIOU". Bei banana lautet die Ausgabe 3, bei rhythm 0.
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser Python herunter (bis zu 6.5 MB) und speichert es im Cache. Ihr Code bleibt auf Ihrem Gerät.
for letter in word: liefert pro Runde ein Zeichen.
letter in "aeiouAEIOU" ist True, wenn der Buchstabe eines dieser Zeichen ist.
In der Schleife: if letter in "aeiouAEIOU": count = count + 1
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
word = input()
count = 0
for letter in word:
if letter in "aeiouAEIOU":
count = count + 1
print(count)
Installieren Sie Python 3.14 oder neuer. Speichern Sie diese Dateien in einem Ordner, öffnen Sie dort ein Terminal und führen Sie die Befehle unten aus.
main.py
word = input()
count = 0
# Count the vowels in word.
print(count)
test_main.py
from learnrun import run_main
def vowels(word):
return run_main(f"{word}\n").strip()
def test_banana():
"""banana hat 3 Vokale"""
got = vowels("banana")
assert got == "3", f"bei banana gab das Programm {got!r} aus, erwartet: '3'"
def test_no_vowels():
"""rhythm hat keine"""
got = vowels("rhythm")
assert got == "0", f"bei rhythm gab das Programm {got!r} aus, erwartet: '0'"
def test_upper_case():
"""Große Vokale zählen mit: Eerie hat 4"""
got = vowels("Eerie")
assert got == "4", f"bei Eerie gab das Programm {got!r} aus, erwartet: '4'"
Unter macOS und Linux tippen Sie python3, wo in diesen Befehlen python steht, wie in der ersten Lektion.
Programm ausführen:
python main.pyPrüfungen ausführen (learnrun.py muss im selben Ordner liegen):
python learnrun.py testlearnrun.py herunterladennames = ["Ada", "Linus"]
for i in range(1, len(names) + 1):
print(names[i])
Was Python ausgibt
IndexError: list index out of rangeWarum, und die Lösung
Listenindizes reichen von 0 bis len(names) - 1, range(1, len(names) + 1) fragt also eine Position zu viel ab. Laufen Sie direkt über die Elemente, for name in names:, oder nehmen Sie enumerate(names, start=1), wenn Sie Nummern ab 1 zeigen wollen.
for n in [1, 2, 3]
print(n)
Was Python ausgibt
SyntaxError: expected ':'Warum, und die Lösung
Wie bei if endet eine for-Zeile mit einem Doppelpunkt, und der eingerückte Block darunter ist der Schleifenrumpf: for n in [1, 2, 3]:. Python führt nichts aus und zeigt auf das Zeilenende.
for i in 5:
print(i)
Was Python ausgibt
TypeError: 'int' object is not iterableWarum, und die Lösung
for braucht etwas mit Elementen, etwa eine Liste, einen String oder ein range. Eine einfache Zahl hat keine Elemente. Für fünf Wiederholungen schreiben Sie for i in range(5):.
Python im Browser: Pyodide 314.0.7, MPL-2.0. Lizenz und Quellcode
5 Fragen, ohne Hinweise. Ab 80 % ist die Lektion abgeschlossen.
Erledigen Sie zuerst alle Aufgaben oben, um das Abschlussquiz freizuschalten.