MINT üben

Statische und dynamische Typen

Zwei Textaufgaben mit Hinweisen und Erwartungshorizont zu Datentypen, Typfehlern und dem Unterschied zwischen statischer und dynamischer Typisierung.

Dein Fortschritt:
0 / 0 Aufgaben
1

Kostenrechner für die Klassenfahrt

AFB I–II

Die Klasse 9b fährt ins Schullandheim. Der Bus kostet 1200 Euro und soll gleichmäßig aufgeteilt werden. Lea schreibt dafür ein kleines Python-Programm:

Python · fahrt.py
1  teilnehmer = input("Wie viele fahren mit? ")
2  kosten = 1200
3  pro_kopf = kosten / teilnehmer
4  print("Jeder zahlt " + pro_kopf + " Euro")

Beim Test gibt sie 24 ein und erhält diese Meldung:

Konsole
Wie viele fahren mit? 24
Traceback (most recent call last):
  File "fahrt.py", line 3, in <module>
    pro_kopf = kosten / teilnehmer
TypeError: unsupported operand type(s) for /: 'int' and 'str'
  1. Bestimme bei der Eingabe 24 den Datentyp von teilnehmer, von kosten und vom Ergebnis des Ausdrucks 1200 / 24.
  2. Interpretiere die Fehlermeldung: In welcher Zeile tritt der Fehler auf, was bedeutet er, und warum wird er erst nach der Eingabe gemeldet?
  3. Wende die Umwandlungsfunktionen int() und str() an, um die Zeilen 1 und 4 so zu ändern, dass bei der Eingabe 24 „Jeder zahlt 50.0 Euro“ ausgegeben wird.

Hinweise

Hinweis zu Aufgabe a)
Was liefert input immer zurück — egal, was eingetippt wird? Und welchen Typ liefert / in Python?
Hinweis zu Aufgabe b)
Lies die letzte Zeile der Meldung genau: Welche beiden Typen werden mit / verknüpft?
Hinweis zu Aufgabe c)
Zeile 4 hätte nach der Korrektur von Zeile 1 ebenfalls einen Typfehler: String plus float.