CodeGym /Kurse /Python SELF DE /Typkonvertierung in Python

Typkonvertierung in Python

Python SELF DE
Level 5 , Lektion 2
Verfügbar

2.1 Typbestimmung

Manchmal wissen wir an einer bestimmten Stelle im Code nicht genau, welche Daten in einer Variablen gespeichert sind. Dafür gibt es in Python die Funktion type(), die wir verwenden können, um den Typ eines Objekts zu bestimmen.

Dies ist eine eingebaute Funktion, die den Typ des angegebenen Objekts zurückgibt, was beispielsweise beim Debugging, bei der Datenvalidierung oder bei der Implementierung von Logik, die von den Datentypen abhängt, hilfreich sein kann.

Funktionsweise der type()-Funktion

Wenn du type(x) aufrufst, gibt Python ein spezielles Objekt vom Typ type zurück, das den Typ der Variablen x darstellt. Zum Beispiel:


x = 1
print(type(x))  # Gibt aus: <class 'int'>

x = "hallo"
print(type(x))  # Gibt aus: <class 'str'>

x = [1, 2, 3]
print(type(x))  # Gibt aus: <class 'list'>

Beachte, dass das Wort "class" auf dem Bildschirm erscheint. Das liegt daran, dass selbst die Typen int, str, list und andere ebenfalls Klassen sind. Sie sind jedoch eingebaute Klassen, die nicht definiert werden müssen, da sie standardmäßig mit Python geliefert werden.

Praktische Anwendung

Die Funktion type() wird häufig in Szenarien verwendet, in denen man auf der Grundlage des Datentyps unterschiedliche Aktionen ausführen möchte.

  • Unterschiedliche Aktionen können basierend auf dem Typ einer Variablen ausgeführt werden.
  • In Funktionen und Methoden, um sicherzustellen, dass die Typen der Argumente korrekt sind.

Wenn du sicherstellen möchtest, dass eine Variable eine Zahl enthält, kannst du einen solchen Code schreiben:


arg = 123
if type(arg) == int:
    print(arg + 10)  # Gibt aus: 133               

Ein praktischeres Beispiel, in dem wir den Typ des Objekts überprüfen, das in einer Variablen gespeichert ist:


arg = "123"
if type(arg) == int:
    print(arg + 10)  # Wird nicht ausgeführt, da arg ein String ist
elif type(arg) == str:
    print(arg + " world")  # Gibt aus: 123 world
else:
    print("Unbekannter Typ")               

2.2 Explizite Typzuweisung

In Python erfolgt die explizite Typzuweisung mit Hilfe von Typumwandlungsfunktionen wie int(), float(), str(), tuple() und anderen. Diese Funktionen ermöglichen es, einen bestimmten Typ zuzuweisen und Daten von einem Typ in einen anderen zu konvertieren. Dies ist nützlich für die Verarbeitung von Benutzereingaben, die Durchführung mathematischer Operationen oder die Arbeit mit Strings und Datensammlungen.

Beispiele für Typumwandlungsfunktionen

int(): Konvertiert Daten in eine ganze Zahl. Wir sind bereits mehrmals auf diese Funktion gestoßen und wissen, dass sie eine Zeichenkette mit einer Zahl in eine entsprechende Integer-Zahl umwandelt.


num = int("123")  # num wird zur Ganzzahl 123               

float(): Eine weitere bekannte Funktion. Sie konvertiert Daten in eine Fließkommazahl.


num = float("123.45")  # num wird 123.45               

str(): Wandelt jedes Python-Objekt in eine String-Repräsentation um.


s = str(10.5)  # s wird '10.5'               

tuple(): Konvertiert eine Sequenz in ein Tupel.


t = tuple([1, 2, 3])  # t wird (1, 2, 3)               

list(): Konvertiert ein iterierbares Objekt (z. B. einen String oder ein Tupel) in eine Liste. Ein iterierbares Objekt ist ein Objekt, das sequentiell durchlaufen werden kann, wie Strings, Listen oder Tupel.


l = list("abc")  # l wird ['a', 'b', 'c']               

dict(): Erstellt ein Wörterbuch aus einer Schlüssel-Wert-Sequenz.


d = dict([(1, 'a'), (2, 'b')])  # d wird {1: 'a', 2: 'b'}

Über Wörterbücher und Tupel werden wir später sprechen. Aber ich denke, das Prinzip ist klar: Wenn du explizit einen bestimmten Typ zuweisen möchtest, kannst du immer diese Funktionen verwenden.

2.3 Typkonvertierung

In Python ermöglicht die explizite Typkonvertierung (oder Typumwandlung) Programmierern, die Datentypen von Variablen zu kontrollieren und zu ändern. Dies kann hilfreich sein, um Daten für verschiedene Operationen kompatibel zu machen oder um die Datentypen zu korrigieren, die über Benutzereingaben oder beim Lesen aus Dateien erhalten werden. Im Grunde bedeutet Typkonvertierung oder Typumwandlung das Gleiche – den Typ eines Objekts in einen anderen zu ändern.

Wir sind bereits mit der expliziten Typkonvertierung ein wenig vertraut. Sie erfolgt in Python mit Hilfe von eingebauten Funktionen, wie z. B. int(), float(), str(), tuple(), list(), dict(), set() und anderen.

Hier sind weitere Beispiele, um dies zu verdeutlichen:

Funktion Beschreibung Beispiel Eingabe Beispiel Ausgabe
int() Konvertiert in eine ganze Zahl int("10") 10
float() Konvertiert in eine Fließkommazahl float("20.5") 20.5
str() Konvertiert in einen String str(15) "15"
tuple() Konvertiert in ein Tupel tuple([1, 2, 3]) (1, 2, 3)
list() Konvertiert in eine Liste list("abc") ['a', 'b', 'c']
dict() Erstellt ein Wörterbuch aus Schlüssel-Wert-Paaren dict([(1, 'one'), (2, 'two')]) {1: 'one', 2: 'two'}
set() Erstellt ein Set aus einer Liste set([1, 1, 2, 2, 3, 3]) {1, 2, 3}

Beispiele für die Verwendung

Die explizite Typkonvertierung wird in vielen Szenarien verwendet, wie z. B.:

  • Verarbeitung von Benutzereingaben: Sicherstellen, dass die eingegebenen Daten dem erwarteten Datentyp entsprechen.
  • Interoperabilität von Daten: Wenn Daten aus verschiedenen Quellen oder APIs kombiniert oder verglichen werden müssen.
  • Fehlerbehandlung: Vermeidung von Laufzeitfehlern durch Umwandlung von Daten in den richtigen Typ vor der Durchführung von Operationen.

Best Practices und Vorsichtsmaßnahmen

Explizite Typkonvertierung sollte bewusst verwendet werden, um Datenverluste (z. B. beim Konvertieren von float in int) oder Konvertierungsfehler (z. B. der Versuch, eine nicht-numerische Zeichenkette in eine Zahl umzuwandeln) zu vermeiden.

Es ist auch wichtig, daran zu denken, dass einige Konvertierungen nicht offensichtlich sein können und zu unerwarteten Ergebnissen führen. Daher ist eine sorgfältige Datenprüfung erforderlich. Zum Beispiel kann die Konvertierung von int in bool und zurück unerwartete Auswirkungen haben :)

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION