109
4.13
Typumwandlungen
Ein Programmlauf könnte z.B. so aussehen:
Es fällt auf, dass das Programm nicht die Summe der beiden eingegebenen Zahlen ausgibt,
sondern die Konkatenation. Warum?
Die Funktion input() liefert eine Zeichenkette aus Zeichen, die der Benutzer über die Tas-
tatur eingegeben hat. Den Variablen
x und y werden also keine Zahlen, sondern Zeichen-
ketten zugewiesen. In der dritten Zeile des Skripts wird folglich der Plusoperator auf
Zeichenketten angewendet und bewirkt deshalb eine Konkatenation.
Wenn die Variable
summe die (arithmetische) Summe zweier Zahlenwerte erhalten soll,
müssen die Werte von
x und y zunächst in Zahlen, z.B. Gleitkommazahlen, umgewandelt
werden. Das folgende leicht abgewandelte Skript berechnet tatsächlich die Summe der ein-
gegebenen Zahlen:
Programmlauf:
Hier wurde die Funktion
float() verwendet. Sie macht aus den Zeichenketten, die von
input() geliefert werden, eine Gleitkommazahl (Typ float).
Manchmal ist es notwendig, ein Objekt in ein Objekt anderen Typs, aber mit »sinngemäß«
gleichem Wert zu überführen. Man spricht dann von einer Typumwandlung, obwohl dieser
Begriff eigentlich irreführend ist. Denn der Typ eines Objektes kann nicht geändert werden.
Tatsächlich wird immer ein neues Objekt mit neuem Typ generiert.
Sie können jeden Datentyp wie eine Funktion aufrufen und damit ein Objekt dieses Daten-
typs erzeugen. Als Argument kann in der Regel ein Objekt eines beliebigen Datentyps ver-
wendet werden, sofern man es sinnvoll konvertieren kann.
4.13.1 int()
Der Aufruf int(x) erzeugt zu dem Argument x eine ganze Zahl (Typ int), sofern man x als
ganze Zahl interpretieren kann. Gehen wir verschiedene Fälle durch:
x: 2
y: 3
Summe: 23
x = input("x: ")
y = input("y: ")
summe = float(x) + float(y)
print("Summe:", summe)
x: 2
y: 3
Summe: 5.0

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.