Aufwärmen · Aufgabe 1 von 7
// B1.2 · ca. 25 Min. · Einstieg
Zahlen: Python als Taschenrechner
Nach dieser Lektion nutzen Sie Python als Taschenrechner: Sie rechnen mit ganzen und Dezimalzahlen, teilen auf drei Arten, halten die Rechenreihenfolge ein und speichern und runden Ergebnisse.
Vorhersagen · Aufgabe 2 von 7
Sagen Sie es vorher, bevor Sie weiterlesen: drei Arten, 7 durch 2 zu teilen. Was gibt das aus?
print(7 / 2, 7 // 2, 7 % 2)Üben · Aufgabe 3 von 7
Setzen Sie den Operator ein, damit die Zeile 2 hoch 10 ausgibt, also 1024.
print(2 ____ 10)print(2 10)Üben · Aufgabe 4 von 7
Was gibt das aus?
print(2 + 3 * 4, (2 + 3) * 4)Üben · Aufgabe 5 von 7
Ordnen Sie jedem Ausdruck den Wert zu, den Python liefert.
Denksport · Aufgabe 6 von 7
Knobelaufgabe. Was gibt das aus?
print(-3 ** 2)Anwenden · Aufgabe 7 von 7
Mini-Aufgabe. Ein Auto fuhr distance = 523 km und verbrauchte litres = 38.4 Liter Kraftstoff. Setzen Sie beide Variablen an den Anfang eines Programms und geben Sie den Verbrauch pro 100 km aus, auf eine Nachkommastelle gerundet. Ändern Sie die beiden Zahlen und prüfen Sie das Ergebnis mit einem Taschenrechner.
Prüfen Sie Ihr Ergebnis anhand dieser Liste
Selbst programmieren
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
Umrechnungen für eine Reise
Eine Reise in die USA braucht zwei Umrechnungen: eine Temperatur von °C in °F (mal 9, geteilt durch 5, plus 32) und die Marathonstrecke von 42.195 km in Meilen (eine Meile sind 1.609344 km). Das Programm speichert die Eingaben in Variablen, rechnet und rundet. Ändern Sie celsius und starten Sie erneut.
main.py
# Convert a temperature and a distance for a trip to the US.
celsius = 21
km = 42.195
fahrenheit = celsius * 9 / 5 + 32
miles = km / 1.609344
print("Temperature:", fahrenheit, "°F")
print("Marathon:", round(miles, 2), "miles")
print("Whole miles:", km // 1.609344)
Ausführen mit
python main.pyAusgabe
Temperature: 69.8 °F
Marathon: 26.22 miles
Whole miles: 26.0- celsius * 9 / 5 + 32: * und / kommen zuerst, von links nach rechts, + kommt zuletzt.
- fahrenheit ist ein float, 69.8, weil / immer einen float liefert.
- round(miles, 2) behält zwei Nachkommastellen: 26.22.
- // wirft den Nachkommaanteil weg, liefert mit einem float aber trotzdem einen float: 26.0.
Ändern und ausführen
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.
Übungen
Übung 1 von 2
Minuten in Stunden
Ein Film dauert minutes = 135. Geben Sie seine Länge in Stunden und Minuten aus, so: 2 h 15 min. Nehmen Sie // für die ganzen Stunden und % für die übrigen Minuten. Die Prüfungen ändern auch die Zahl oben, rechnen Sie also mit der Variable.
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.
Hinweise
Hinweis 1
minutes // 60 liefert die ganzen Stunden: 135 // 60 ist 2.
Hinweis 2
minutes % 60 liefert, was nach diesen Stunden übrig bleibt: 135 % 60 ist 15.
Hinweis 3
print(minutes // 60, "h", minutes % 60, "min")
Eine Lösung zeigen
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
minutes = 135
print(minutes // 60, "h", minutes % 60, "min")
Auf dem eigenen Computer ausführen
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
minutes = 135
# Print the whole hours and the minutes left over, e.g. 2 h 15 min
print(minutes / 60, "h")
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_135():
"""135 Minuten sind 2 h 15 min"""
got = run_with(minutes=135)
assert got == "2 h 15 min", f"bei 135 gab das Programm {got!r} aus, erwartet: '2 h 15 min'"
def test_under_an_hour():
"""59 Minuten sind 0 h 59 min"""
got = run_with(minutes=59)
assert got == "0 h 59 min", f"bei 59 gab das Programm {got!r} aus, erwartet: '0 h 59 min'"
def test_whole_hours():
"""600 Minuten sind 10 h 0 min"""
got = run_with(minutes=600)
assert got == "10 h 0 min", f"bei 600 gab das Programm {got!r} aus, erwartet: '10 h 0 min'"
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
Eine Rechnung teilen
total = 50 Euro werden unter people = 3 aufgeteilt. Geben Sie aus, was jede Person zahlt, auf zwei Nachkommastellen gerundet: Each pays: 16.67. Die Prüfungen probieren auch andere Beträge und Gruppengrößen.
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.
Hinweise
Hinweis 1
total / people liefert jeden Anteil, aber mit vielen Nachkommastellen: 16.666666666666668.
Hinweis 2
round(wert, 2) behält zwei Nachkommastellen.
Hinweis 3
print("Each pays:", round(total / people, 2))
Eine Lösung zeigen
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
total = 50
people = 3
print("Each pays:", round(total / people, 2))
Auf dem eigenen Computer ausführen
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
total = 50
people = 3
# Print each share, rounded to 2 decimal places.
print("Each pays:", total / people)
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_three_people():
"""50 Euro für 3 Personen sind je 16.67"""
got = run_with(total=50, people=3)
assert got == "Each pays: 16.67", f"das Programm gab {got!r} aus, erwartet: 'Each pays: 16.67'"
def test_even_split():
"""100 Euro für 8 Personen sind je 12.5"""
got = run_with(total=100, people=8)
assert got == "Each pays: 12.5", f"bei 100 und 8 gab das Programm {got!r} aus, erwartet: 'Each pays: 12.5'"
def test_other_numbers():
"""20 Euro für 3 Personen sind je 6.67"""
got = run_with(total=20, people=3)
assert got == "Each pays: 6.67", f"bei 20 und 3 gab das Programm {got!r} aus, erwartet: 'Each pays: 6.67'"
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 herunterladenHäufige Fehler
Multiplikation wie in Mathe schreiben
print(2(3 + 4))
Was Python ausgibt
TypeError: 'int' object is not callableWarum, und die Lösung
In Mathe bedeutet 2(3 + 4) „2 mal (3 + 4)“. In Python ist ein Name oder Wert, gefolgt von Klammern, ein Aufruf wie bei print(...), und eine Zahl lässt sich nicht aufrufen. Vor dem Fehler warnt Python sogar: SyntaxWarning: 'int' object is not callable; perhaps you missed a comma? Schreiben Sie immer das *: 2 * (3 + 4).
Durch null teilen
people = 0
print(50 / people)
Was Python ausgibt
ZeroDivisionError: division by zeroWarum, und die Lösung
Eine Division durch null hat kein Ergebnis, also bricht Python mit einem Fehler ab, statt eine Zahl auszugeben. Dasselbe gilt für // und %. Sorgen Sie dafür, dass der Teiler nicht 0 sein kann; später im Kurs lernen Sie, das vorher mit if zu prüfen.
Eine Variable benutzen, bevor sie einen Wert hat
print(total)
total = 5
Was Python ausgibt
NameError: name 'total' is not definedWarum, und die Lösung
Python führt ein Programm von oben nach unten aus, in Zeile 1 gibt es total also noch nicht. Weisen Sie eine Variable vor der ersten Zeile zu, die sie benutzt. Ein Tippfehler im Namen führt zum selben Fehler.
Python im Browser: Pyodide 314.0.7, MPL-2.0. Lizenz und Quellcode
Abschlussquiz
5 Fragen, ohne Hinweise. Ab 80 % ist die Lektion abgeschlossen.
Erledigen Sie zuerst alle Aufgaben oben, um das Abschlussquiz freizuschalten.