Stewdent.eu
â–Ÿ

Typumwandlung

Typumwandlung bezeichnet das Umwandeln eines Wertes von einem Datentyp in einen anderen. In Python unterscheidet man zwischen impliziter und expliziter Typumwandlung.

Zuletzt aktualisiert: 10. Dezember 2025

★★☆☆☆ Stufe 2computingprogrammingdatentypentypumwandlungkonvertierung4 Min Lesezeit

Fehler melden

Manchmal hat ein Programm einen Wert in einem bestimmten Datentyp, braucht ihn aber in einem anderen. Wenn ein Benutzer eine Zahl eintippt, speichert Python sie zunÀchst als Text. Bevor du damit rechnen kannst, musst du sie in eine Zahl umwandeln. Das nennt sich Typumwandlung (englisch: type conversion oder type casting).

Datentypen in Python

Zuerst die wichtigsten Typen, zwischen denen du wechseln wirst:

TypBeschreibungBeispiel
intGanze Zahl42, -7, 0
floatKommazahl3.14, -2.5
strText"Hallo", "42"
boolWahrheitswertTrue, False
listListe[1, 2, 3]

Explizite Typumwandlung

Bei der expliziten Umwandlung rufst du eine Funktion auf, um den Typ zu Àndern:

# Text in Zahl
zahl_text = "42"
zahl_int = int(zahl_text)
zahl_float = float(zahl_text)
print(zahl_int + 8)     # 50
print(zahl_float + 0.5) # 42.5

# Zahl in Text
nummer = 100
text = str(nummer)
print("Die Zahl ist: " + text)   # Die Zahl ist: 100

# float in int (Nachkommastellen werden abgeschnitten)
kommazahl = 7.9
ganze_zahl = int(kommazahl)
print(ganze_zahl)   # 7 (NICHT gerundet, sondern abgeschnitten!)
Warnung

int(7.9) ergibt 7, nicht 8. Python schneidet die Nachkommastellen einfach ab, ohne zu runden. Wenn du runden möchtest, verwende round(7.9), das ergibt 8.

Warum ist Typumwandlung wichtig?

Das hÀufigste Szenario: Benutzereingaben

eingabe = input("Gib dein Alter ein: ")
print(type(eingabe))   # <class 'str'>

# FEHLER: str + int ist nicht möglich
# print(eingabe + 1)   # TypeError!

# Richtig: Erst umwandeln
alter = int(eingabe)
naechstes_jahr = alter + 1
print(f"NĂ€chstes Jahr bist du {naechstes_jahr}.")

Implizite Typumwandlung

Bei der impliziten Umwandlung macht Python die Konvertierung automatisch, ohne dass du es verlangst:

# int + float = float automatisch
ergebnis = 5 + 2.0
print(ergebnis)        # 7.0  (int wurde zu float)
print(type(ergebnis))  # <class 'float'>

# int in bool
print(bool(0))    # False
print(bool(42))   # True
Hinweis

Python ist vorsichtig bei der impliziten Umwandlung. Im Gegensatz zu anderen Sprachen konvertiert Python niemals automatisch zwischen Text und Zahlen. "5" + 3 wirft einen Fehler, weil Python nicht raten möchte, was du meinst.

FehlerfÀlle erkennen

Nicht alle Umwandlungen sind möglich:

int("3.14")     # ValueError! — '3.14' ist kein gĂŒltiger int
int("hallo")    # ValueError! — 'hallo' ist keine Zahl
float("abc")    # ValueError!

Wenn du Benutzereingaben verarbeitest, solltest du Fehler abfangen:

eingabe = input("Gib eine Zahl ein: ")
try:
    zahl = int(eingabe)
    print(f"Das Doppelte ist: {zahl * 2}")
except ValueError:
    print("Das war keine gĂŒltige ganze Zahl!")
Tipp

try/except ist Pythons Art, mit Fehlern umzugehen. Wenn der Code im try-Block einen Fehler verursacht, springt Python zum except-Block, anstatt das Programm zu beenden.

Zusammenfassung: Umwandlungsfunktionen

FunktionZieltypBeispielErgebnis
int()Ganze Zahlint("42")42
float()Kommazahlfloat("3.5")3.5
str()Textstr(100)"100"
bool()Wahrheitswertbool(0)False
list()Listelist("abc")['a','b','c']

Übungsaufgaben

Was gibt der folgende Code aus und warum? print(int(9.99))

Antwort anzeigen
9. Die Funktion int() schneidet bei Kommazahlen einfach die Nachkommastellen ab, ohne zu runden. 9.99 wird zu 9, nicht zu 10.

Ein SchĂŒler möchte zwei Zahlen addieren, die der Benutzer eingegeben hat. Er schreibt: a = input('Erste Zahl: ') / b = input('Zweite Zahl: ') / print(a + b). Was ist das Problem, und wie wird es behoben?

Antwort anzeigen
input() gibt immer einen String zurĂŒck. Der Operator + verbindet bei Strings zwei Texte (z. B. '3' + '5' = '35'). Um zu addieren, mĂŒssen die Eingaben in Zahlen umgewandelt werden: a = int(input('Erste Zahl: ')) / b = int(input('Zweite Zahl: ')) / print(a + b).