Zum Hauptinhalt springen

Text in Zahlen umwandeln

Warum brauchen wir das?

input() liefert immer Text (str).

Wenn jemand 11 tippt, bekommst du "11" – nicht die Zahl 11.
Für Begrüßungen ist das egal. Für Rechnen ist es entscheidend.

# knallt:
alter = input("Alter: ")
print(alter + 1)

Python kann "11" und 1 nicht sinnvoll addieren: Text + Zahl → TypeError.

Du brauchst einen bewussten Schritt: Umwandlung vom Text zur Zahl.

Definition: Umwandlung und int()

Definition – Umwandlung (Konvertierung):
Umwandlung bedeutet, einen Wert von einem Datentyp in einen anderen zu bringen.

Definition – int():
int(...) versucht, etwas in eine ganze Zahl zu verwandeln.
Beispiel: int("11")11.

Definition – float() (Ausblick):
float(...) versucht, etwas in eine Kommazahl zu verwandeln.
Beispiel: float("2.5")2.5.

Umwandlung ist kein Zauber – sie gelingt nur, wenn der Text sinnvoll als Zahl gelesen werden kann.

Lily wird ein Jahr älter

alter = int(input("Wie alt bist du? "))
print(alter + 1)

Von innen nach außen lesen

alter = int(input("Wie alt bist du? "))

Python arbeitet von innen nach außen:

  1. input(...) → z. B. "11" (str)
  2. int("11")11 (int)
  3. Zuweisung speichert 11 in alter
  4. alter + 112

Py: „Zuerst lesen, dann umwandeln, dann rechnen.“
Buggy lässt int weg und erntet TypeError.
Lily merkt sich die Reihenfolge wie eine Zwiebel: innen zuerst.

Neue Wörter

Umwandlungconversion / cast

Einen Wert in einen anderen Datentyp verwandeln.

int()int()

Wandelt passenden Text in eine ganze Zahl um.

ValueErrorValueError

Fehler, wenn der Wert nicht umwandelbar ist, z. B. int('hallo').

Gute und schlechte Eingaben

Eingabe (getippt)int(...)Kommentar
1212super
00super
-3-3negative ints gehen
halloValueErrorkeine Zahl
12.5ValueError bei intdafür float
leere Enter-ZeileValueErrornichts zum Umwandeln

Für den Anfang: echte ganze Ziffern eingeben. Später lernst du, Fehler abzufangen.

Ohne int: die "55"-Überraschung

a = input("Zahl: ") # tippe 5
print(a + a) # "55" – Text aneinander!

Mit Umwandlung:

a = int(input("Zahl: "))
print(a + a) # 10

Dieselbe Taste 5 – zwei völlig verschiedene Welten, je nach Typ.

Zwei Schreibweisen

Verschachtelt (kurz)

alter = int(input("Alter: "))

In zwei Schritten (klar für Anfänger)

alter_text = input("Alter: ")
alter = int(alter_text)

Beide sind richtig. Die Zwei-Schritt-Version macht den Typwechsel sichtbar.

Was passiert im Computer?

  1. Die Tastatur liefert Zeichen.
  2. input baut daraus einen String.
  3. int prüft: Kann man diesen String als ganze Zahl lesen?
  4. Bei Erfolg: echter int-Wert.
  5. Bei Misserfolg: ValueError – Programm stoppt (noch ohne sanfte Meldung).

Python rechnet erst nach erfolgreicher Umwandlung.

Häufige Fehler

Code / SituationProblemFix
alter + 1 ohne intTypeErrorint(input(...))
int("hi")ValueErrorgültige Zahl tippen
int um print statt um inputfalsche Stelleinnen: input, außen: int
float-Text mit intValueErrorfloat(...) nutzen
Leerzeichen-Chaosmanchmal ok, oft besser trimmenspäter strip

Probiere es selbst

Experiment 1 – Verdoppeln

zahl = int(input("Zahl: "))
print(zahl * 2)

Experiment 2 – Zukunft

alter = int(input("Alter: "))
print("In 5 Jahren:", alter + 5)

Experiment 3 – Summe

a = int(input("Erste Zahl: "))
b = int(input("Zweite Zahl: "))
print("Summe:", a + b)

Experiment 4 – Buggy-Vergleich

a = input("Zahl: ")
print("ohne int:", a + a)
a = int(a)
print("mit int:", a + a)

Fehlerdetektiv

alter = input("Wie alt bist du? ")
print(alter + 1)
Lösung anzeigen

alter ist str. Richtig:

alter = int(input("Wie alt bist du? "))
print(alter + 1)

Übungen

Level 1 – Entdecken

Zahl einlesen, Doppeltes ausgeben.

Lösung
zahl = int(input("Zahl: "))
print(zahl * 2)

Level 2 – Anwenden

Zwei Zahlen einlesen und die Summe ausgeben.

Lösung
a = int(input("Erste Zahl: "))
b = int(input("Zweite Zahl: "))
print(a + b)

Level 3 – Erweitern

Alter jetzt, in 1 Jahr und in 10 Jahren ausgeben.

Beispiel
alter = int(input("Alter: "))
print("Jetzt:", alter)
print("In 1 Jahr:", alter + 1)
print("In 10 Jahren:", alter + 10)

Mini-Challenge

Mini-Kasse: Preis und Anzahl als int einlesen → Gesamtpreis.
Erkläre: Warum reicht input allein nicht zum Rechnen?

Loesungsidee
preis = int(input("Preis in Euro: "))
anzahl = int(input("Anzahl: "))
print("Gesamt:", preis * anzahl)

Zusammenfassung

  • input → immer str.
  • int("11") → ganze Zahl 11.
  • Verschachtelung von innen nach außen lesen.
  • Ohne Umwandlung: oft TypeError oder Text-Plus "55".
  • Ungültiger Text → ValueError.
  • float() für Kommazahlen (Preise, Maße).

Mini-Quiz

Mini-QuizWas brauchst du, um aus input eine ganze Zahl zu machen?
  1. Welchen Typ hat input allein?
  2. Was macht int("8")?
  3. Warum ist "5" + "5" nicht 10?
Lösungen
  1. str
  2. Wandelt in die Zahl 8 um
  3. Strings werden aneinandergehängt, nicht addiert

Umwandlung sitzt! Als Nächstes: ein ganzer Dialog mit mehreren Fragen.