Zum Inhalt springen
aviral gupta

// 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.

Lektion 2 von 5 in B1 Erste Schritte

Danach können Sie

  • Mit + - * / // % und ** rechnen und vorhersagen, ob das Ergebnis ein int oder ein float ist
  • Vorhersagen, in welcher Reihenfolge Python rechnet, und sie mit Klammern ändern
  • Zahlen in Variablen speichern und Ergebnisse mit round() runden
  1. Aufwärmen · Aufgabe 1 von 7

    Aufwärmen aus Lektion B1.1: Welche Zeile in einem Skript (python main.py) zeigt 12 auf dem Bildschirm?

  2. 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)
  3. Ü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)
  4. Üben · Aufgabe 4 von 7

    Was gibt das aus?

    print(2 + 3 * 4, (2 + 3) * 4)
  5. Üben · Aufgabe 5 von 7

    Ordnen Sie jedem Ausdruck den Wert zu, den Python liefert.

  6. Denksport · Aufgabe 6 von 7

    Knobelaufgabe. Was gibt das aus?

    print(-3 ** 2)
  7. 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.py

Ausgabe

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
  1. Hinweis 1

    minutes // 60 liefert die ganzen Stunden: 135 // 60 ist 2.

  2. Hinweis 2

    minutes % 60 liefert, was nach diesen Stunden übrig bleibt: 135 % 60 ist 15.

  3. 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.py

Prüfungen ausführen (learnrun.py muss im selben Ordner liegen):

python learnrun.py test
learnrun.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
  1. Hinweis 1

    total / people liefert jeden Anteil, aber mit vielen Nachkommastellen: 16.666666666666668.

  2. Hinweis 2

    round(wert, 2) behält zwei Nachkommastellen.

  3. 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.py

Prüfungen ausführen (learnrun.py muss im selben Ordner liegen):

python learnrun.py test
learnrun.py herunterladen

Häufige Fehler

Multiplikation wie in Mathe schreiben

print(2(3 + 4))

Was Python ausgibt

TypeError: 'int' object is not callable

Warum, 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 zero

Warum, 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 defined

Warum, 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.

Problem melden

Etwas ist falsch oder unklar? Beschreiben Sie es kurz, dann wird es geprüft und korrigiert.

#

Mindestens 20 Zeichen.

Nur, wenn Sie eine Antwort wünschen.

Kernideen

int und float

Ganze Zahlen wie 2 und 20 haben den Typ int, Zahlen mit Dezimalpunkt wie 2.5 und 5.0 den Typ float. Python schreibt Dezimalzahlen mit Punkt, nicht mit Komma. / liefert immer einen float, auch wenn die Division aufgeht: 8 / 4 ist 2.0. Treffen int und float in einer Rechnung aufeinander, ist das Ergebnis ein float: 3 * 2.0 ist 6.0. Floats werden binär gespeichert und sind oft minimal ungenau, deshalb gibt 0.1 + 0.2 den Wert 0.30000000000000004 aus.

Sieben Operatoren und ihre Reihenfolge

+ addiert, - subtrahiert, * multipliziert und / dividiert. // dividiert und wirft den Nachkommaanteil weg (17 // 5 ist 3), % liefert den Rest (17 % 5 ist 2). ** potenziert: 2 ** 10 ist 1024. Python rechnet zuerst **, dann * / // %, dann + und -, und innerhalb einer Stufe von links nach rechts. Klammern gehen allem vor: (2 + 3) * 4 ist 20. ** kommt sogar vor einem Minuszeichen vor der Zahl, also ist -3 ** 2 gleich -9.

Variablen und round()

width = 20 speichert 20 unter dem Namen width; = weist zu, ausgegeben wird nichts. Spätere Zeilen verwenden den Namen statt der Zahl, und total = total + 5 ersetzt den alten Wert durch einen neuen. Wer einen Namen vor der Zuweisung benutzt, erhält einen NameError. round(x, 2) rundet auf zwei Nachkommastellen, round(x) liefert den nächsten int. Ein Wert genau in der Mitte wird zur geraden Zahl gerundet: round(2.5) ist 2. Am >>>-Prompt enthält _ den zuletzt angezeigten Wert.

Quellen

Zuletzt geprüft am 29. September 2026