Aufwärmen · Aufgabe 1 von 7
Aufwärmen aus Lektion B1.2: Was gibt das aus?
print(7 // 2, 7 % 2)// B1.3 · ca. 25 Min. · Einstieg
Nach dieser Lektion schreiben Sie jeden Text als Python-String, greifen Zeichen und Teile über ihre Position heraus und bauen geänderte Kopien.
Danach können Sie
Aufwärmen · Aufgabe 1 von 7
print(7 // 2, 7 % 2)Vorhersagen · Aufgabe 2 von 7
word = "Python"
print(word[0], word[-1], word[1:4])Üben · Aufgabe 3 von 7
word = "Python"
print(word[____])Üben · Aufgabe 4 von 7
print("ab" * 3 + "!")Üben · Aufgabe 5 von 7
Denksport · Aufgabe 6 von 7
path = "C:\new"
print(len(path))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 Shop schreibt seine Produktcodes als Land, Jahr und Nummer: DE-2026-0042. Weil jeder Code gleich aufgebaut ist, können Slices ihn nach Position zerlegen. Das Programm gibt jeden Teil aus, baut mit + ein kurzes Etikett und unterstreicht es mit *. Ändern Sie code in FR-2025-1234 und starten Sie erneut.
main.py
# Take a product code apart by position.
code = "DE-2026-0042"
country = code[:2]
year = code[3:7]
number = code[-4:]
print("Code:", code, "has", len(code), "characters")
print("Country:", country)
print("Year:", year)
print("Number:", number)
label = country + "/" + number
print(label)
print("-" * len(label))
Ausführen mit
python main.pyAusgabe
Code: DE-2026-0042 has 12 characters
Country: DE
Year: 2026
Number: 0042
DE/0042
-------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.
Übung 1 von 2
Das Programm beginnt mit first = "Grace" und last = "Hopper". Geben Sie den ersten Buchstaben des Vornamens, einen Punkt, ein Leerzeichen und den Nachnamen aus: G. Hopper. In einer zweiten Zeile geben Sie Letters: und die Zahl der Buchstaben beider Namen zusammen aus, 11. Die Prüfungen probieren auch andere Namen.
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.
first[0] ist das erste Zeichen des Vornamens.
Verbinden Sie die Teile mit +: first[0] + ". " + last.
len(first) + len(last) addiert die beiden Längen: print("Letters:", len(first) + len(last)).
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
first = "Grace"
last = "Hopper"
print(first[0] + ". " + last)
print("Letters:", len(first) + len(last))
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
first = "Grace"
last = "Hopper"
# Line 1: G. Hopper
# Line 2: Letters: 11
print(first + " " + last)
test_main.py
import re
from learnrun import run_main
def run_with(**values):
with open("main.py", encoding="utf-8") as f:
code = f.read()
for name, value in values.items():
code, count = re.subn(rf"^{name} = .*$", f"{name} = {value!r}", code, count=1, flags=re.M)
assert count == 1, f"main.py braucht oben die Zeile {name} = ..."
with open("variant.py", "w", encoding="utf-8") as f:
f.write(code)
return run_main(path="variant.py").strip()
def test_short_name():
"""Aus Grace Hopper wird G. Hopper"""
got = run_with(first="Grace", last="Hopper").splitlines()[:1]
assert got == ["G. Hopper"], f"die erste Zeile ist {got!r}, erwartet: ['G. Hopper']"
def test_letters():
"""Grace Hopper hat 11 Buchstaben"""
got = run_with(first="Grace", last="Hopper").splitlines()[1:]
assert got == ["Letters: 11"], f"die zweite Zeile ist {got!r}, erwartet: ['Letters: 11']"
def test_other_name():
"""Aus Ada Lovelace wird A. Lovelace, mit 11 Buchstaben"""
got = run_with(first="Ada", last="Lovelace").splitlines()
assert got == ["A. Lovelace", "Letters: 11"], f"bei Ada Lovelace gab das Programm {got!r} aus"
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 2
card = "4111222233334444" enthält eine Kartennummer. Geben Sie sie aus, wobei jede Ziffer außer den letzten vier durch * ersetzt ist: ************4444. Berechnen Sie die Zahl der Sterne mit len(), denn die Prüfungen probieren auch Nummern anderer Länge.
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.
card[-4:] sind immer die letzten vier Zeichen, egal wie lang die Nummer ist.
Die Zahl der Sterne ist len(card) - 4, und "*" * n wiederholt den Stern n-mal.
print("*" * (len(card) - 4) + card[-4:]): Die Klammern sorgen dafür, dass zuerst subtrahiert wird.
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
card = "4111222233334444"
print("*" * (len(card) - 4) + card[-4:])
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
card = "4111222233334444"
# Stars for all but the last four digits, then the last four.
print("************" + card[12:])
test_main.py
import re
from learnrun import run_main
def run_with(**values):
with open("main.py", encoding="utf-8") as f:
code = f.read()
for name, value in values.items():
code, count = re.subn(rf"^{name} = .*$", f"{name} = {value!r}", code, count=1, flags=re.M)
assert count == 1, f"main.py braucht oben die Zeile {name} = ..."
with open("variant.py", "w", encoding="utf-8") as f:
f.write(code)
return run_main(path="variant.py").strip()
def test_sixteen_digits():
"""Eine 16-stellige Nummer zeigt nur ihre letzten vier Ziffern"""
got = run_with(card="4111222233334444")
assert got == "************4444", f"das Programm gab {got!r} aus, erwartet: '************4444'"
def test_shorter_number():
"""Eine 8-stellige Nummer bekommt vier Sterne"""
got = run_with(card="12345678")
assert got == "****5678", f"bei 12345678 gab das Programm {got!r} aus, erwartet: '****5678'"
def test_longer_number():
"""Eine 19-stellige Nummer bekommt fünfzehn Sterne"""
got = run_with(card="6011000990139424123")
assert got == "*" * 15 + "4123", f"bei einer 19-stelligen Nummer gab das Programm {got!r} aus"
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 herunterladenword = "cat"
word[0] = "b"
Was Python ausgibt
TypeError: 'str' object does not support item assignmentWarum, und die Lösung
Strings lassen sich nicht mehr ändern, wenn sie einmal existieren. Bauen Sie aus den gewünschten Teilen einen neuen String und weisen Sie ihn zu: word = "b" + word[1:]. Der Name word verweist dann auf den neuen String, "bat".
word = "code"
print(word[4])
Was Python ausgibt
IndexError: string index out of rangeWarum, und die Lösung
"code" hat 4 Zeichen mit den Indizes 0 bis 3, weil die Zählung bei 0 beginnt. Das letzte ist word[3], word[len(word) - 1] oder am einfachsten word[-1].
age = 30
print("Age: " + age)
Was Python ausgibt
TypeError: can only concatenate str (not "int") to strWarum, und die Lösung
+ verbindet zwei Strings oder addiert zwei Zahlen, mischt sie aber nicht. Übergeben Sie beides mit Komma an print(): print("Age:", age). Später lernen Sie auch str(age) und f-Strings kennen.
print('It's fine')
Was Python ausgibt
SyntaxError: unterminated string literal (detected at line 1)Warum, und die Lösung
Das ' in It's beendet den String zu früh, und mit dem Rest kann Python nichts anfangen. Nehmen Sie die andere Sorte Anführungszeichen um den Text, "It's fine", oder schützen Sie das Zeichen mit Backslash: 'It\'s fine'.
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.