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 :)
GO TO FULL VERSION