Direkt zum Hauptinhalt springen
eLearner.app
Modul 4 · Lektion 4 von 416/36 im Kurs~10 min
Lektionen des Moduls (4/4)

Typkonvertierungen

Python ist stark typisiert: Es addiert niemals einen String zu einer Zahl, es sei denn, du verlangst es explizit. Um von einem Typ zu einem anderen zu wechseln, verwendest du die Konstruktorfunktionen: int(), float(), str(), bool(), list(), tuple(), set().

Python
int("42")        # 42
float("3.14")    # 3.14
str(42)          # '42'
list("abc")      # ['a', 'b', 'c']
tuple([1, 2])    # (1, 2)
set([1, 1, 2])   # {1, 2}

int() mit Strings

int("42") funktioniert; int("42.5") führt zu einem ValueError. Konvertiere bei Dezimal-Strings zuerst in einen float: int(float("42.5"))42 (schneidet ab, rundet nicht).

Python
int("42")         # 42
int("  42  ")     # 42        (strip automatico degli spazi)
int("42.5")       # ValueError
int(float("42.5"))  # 42
int("ff", 16)     # 255       (base esplicita)

float() mit Strings

Akzeptiert Dezimal- und wissenschaftliche Notation.

Python
float("3.14")      # 3.14
float("1e3")       # 1000.0
float("inf")       # inf
float("nan")       # nan

str(): die "freundliche" Konvertierung

str(x) ruft intern x.__str__() auf, um die "menschliche" Darstellung zu erhalten. Es gibt auch repr(x) für die "Debugger"-Darstellung, die oft expliziter ist (mit Anführungszeichen für Strings usw.).

Python
str(3.14)       # '3.14'
str([1, 2])     # '[1, 2]'
str(True)       # 'True'

bool() und Truthiness

bool(x) gibt nur bei den falsy Werten von Python False zurück:

  • False, None
  • Nullwerte: 0, 0.0
  • leere Sammlungen: "", [], (), {}, set()

Alles andere ist truthy.

Python
bool(0)       # False
bool("")      # False
bool([])      # False
bool("0")     # True  !  (stringa non vuota)
bool([0])     # True  !  (lista non vuota, anche se contiene 0)

Pattern: Sicheres Parsen von Eingaben

Python
testo = input("età: ")
try:
    eta = int(testo)
except ValueError:
    print(f"non è un numero: {testo!r}")
    eta = None

Boolesche Auswertung (Truthiness)

In Python hat jedes Objekt einen impliziten Wahrheitswert. Du kannst den booleschen Wert eines beliebigen Objekts mit der Funktion bool(...) überprüfen. Leere Sammlungen (z.B. "", [], {}, set()) und Nullwerte (0, 0.0) werden immer zu False ausgewertet. Alle anderen Objekte werden zu True ausgewertet.

Probiere es aus

Übung#python.m4.l4.e1
Versuche: 0Wird geladen…

Gegeben seien `a = '10'` und `b = '32'` (Strings). Berechne `total` als deren GANZZAHLIGE Summe. Evaluiere `total`.

Editor wird geladen…
Hinweis anzeigen

int(a) + int(b), andernfalls verkettest du die Strings.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#python.m4.l4.e2
Versuche: 0Wird geladen…

Gegeben sei die Liste `values = ['', 'x', 0, None, 1, []]`. Erstelle `truthy` NUR mit den truthy-Elementen unter Verwendung von bool(). Evaluiere `truthy`.

Editor wird geladen…
Hinweis anzeigen

List-Comprehension mit Filter bool(v) (oder einfach 'if v').

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#python.m4.l4.e3
Versuche: 0Wird geladen…

Konvertiere in der Liste von Strings `string_numbers = ["1", "2", "3"]` jedes Element mit `int()` in eine Ganzzahl und summiere sie, um den Wert `6` zu erhalten. Speichere die Summe in `sum_val` und evaluiere sie.

Editor wird geladen…
Hinweis anzeigen

Greife über den Index auf die Elemente zu, z.B. int(string_numbers[0]), und summiere sie.

Lösung nach 3 Versuchen verfügbar