Python3 Datentypkonvertierung
Manchmal müssen wir die eingebauten Datentypen konvertieren. Für die Datentypkonvertierung müssen Sie im Allgemeinen nur den Datentyp als Funktionsnamen verwenden.
Die Python-Datentypkonvertierung kann in zwei Arten unterteilt werden:
- Implizite Typkonvertierung – erfolgt automatisch
- Explizite Typkonvertierung – erfordert die Verwendung von Typfunktionen zur Konvertierung
Implizite Typumwandlung
Bei der impliziten Typkonvertierung konvertiert Python automatisch einen Datentyp in einen anderen, ohne dass wir eingreifen müssen.
Im folgenden Beispiel führen wir eine Operation mit zwei unterschiedlichen Datentypen durch, und der niedrigere Datentyp (integer) wird in den höheren Datentyp (float) konvertiert, um Datenverlust zu vermeiden.
Beispiel
num_flo = 1.23
num_new = num_int + num_flo
print("Datentyp von num_int ist:",type(num_int))
print("Datentyp von num_flo ist:",type(num_flo))
print("Wert von num_new ist:",num_new)
print("Datentyp von num_new ist:",type(num_new))
Die Ausgabe des obigen Beispiels ist:
num_int 数据类型为: <class 'int'> num_flo 数据类型为: <class 'float'> num_new: 值为: 124.23 num_new 数据类型为: <class 'float'>
Codeanalyse:
- Im Beispiel haben wir zwei Variablen mit unterschiedlichen Datentypen
num_intundnum_floführen eine Addition durch und speichern das Ergebnis in der Variablennum_new. - Dann überprüfen wir die Datentypen der drei Variablen.
- In der Ausgabe sehen wir
num_intJa整型(integer),num_floJa浮点型(float)。 - Ähnlich ist die neue Variable
num_newJa浮点型(float), das liegt daran, dass Python den niedrigeren Datentyp in den höheren umwandelt, um Datenverlust zu vermeiden.
Schauen wir uns ein weiteres Beispiel an, bei dem Integer-Daten und String-Daten addiert werden:
Beispiel
num_str = "456"
print("Datentyp von num_int ist:",type(num_int))
print("Der Datentyp von num_str ist:",type(num_str))
print(num_int+num_str)
Die Ausgabe des obigen Beispiels ist:
num_int 数据类型为: <class 'int'>
num_str 数据类型为: <class 'str'>
Traceback (most recent call last):
File "/example-test/test.py", line 7, in <module>
print(num_int+num_str)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Wie aus der Ausgabe ersichtlich ist, führt die Operation zwischen Integer- und String-Typen zu einem Fehler und gibt TypeError aus. Python kann in diesem Fall keine implizite Konvertierung verwenden.
Python bietet jedoch eine Lösung für solche Situationen, die als explizite Konvertierung bezeichnet wird.
Explizite Typkonvertierung
Bei der expliziten Typkonvertierung konvertiert der Benutzer den Datentyp eines Objekts in den erforderlichen Datentyp. Wir verwenden vordefinierte Funktionen wie int(), float(), str() usw., um eine explizite Typkonvertierung durchzuführen.
int()Konvertierung in den Integer-Typ:
Beispiel
y = int(2.8) # y gibt 2 aus
z = int("3") # z gibt 3 aus
float()Konvertierung in den Gleitkommatyp:
Beispiel
y = float(2.8) # y gibt 2.8 aus
z = float("3") # z gibt 3.0 aus
w = float("4.2") # w gibt 4.2 aus
str()Konvertierung in den String-Typ:
Beispiel
y = str(2) # y gibt '2' aus
z = str(3.0) # z gibt '3.0' aus
Um eine Operation zwischen den Typen Integer und String durchzuführen, kannst du eine erzwungene Typkonvertierung verwenden:
Beispiel
num_str = "456"
print("Datentyp von num_int ist:",type(num_int))
print("Vor der Typkonvertierung ist der Datentyp von num_str:",type(num_str))
num_str = int(num_str) # in den Integer-Typ konvertieren
print("Nach der Typkonvertierung ist der Datentyp von num_str:",type(num_str))
num_sum = num_int + num_str
print("Das Ergebnis der Addition von num_int und num_str ist:",num_sum)
print("Datentyp der Summe ist:",type(num_sum))
Die Ausgabe des obigen Beispiels ist:
num_int 数据类型为: <class 'int'> 类型转换前,num_str 数据类型为: <class 'str'> 类型转换后,num_str 数据类型为: <class 'int'> num_int 与 num_str 相加结果为: 579 sum 数据类型为: <class 'int'>
Die folgenden integrierten Funktionen können Konvertierungen zwischen Datentypen durchführen. Diese Funktionen geben ein neues Objekt zurück, das den konvertierten Wert darstellt.
| Funktion | Beschreibung |
|---|---|
|
x in eine ganze Zahl umwandeln |
|
|
Konvertiere x in eine Gleitkommazahl |
|
|
Eine komplexe Zahl erstellen |
|
|
Objekt x in einen String umwandeln |
|
|
Objekt x in einen Ausdrucks-String umwandeln |
|
|
Wird verwendet, um einen gültigen Python-Ausdruck in einer Zeichenkette auszuwerten und ein Objekt zurückzugeben |
|
|
Sequenz s in ein Tupel umwandeln |
|
|
Sequenz s in eine Liste umwandeln |
|
|
In ein veränderbares Set umwandeln |
|
|
Erstelle ein Dictionary. d muss eine Sequenz von (key, value)-Tupeln sein. |
|
|
In ein unveränderbares Set umwandeln |
|
|
Konvertiere eine Ganzzahl in ein Zeichen |
|
|
Konvertiere ein Zeichen in seinen Ganzzahlwert |
|
|
Eine Ganzzahl in einen Hexadezimal-String umwandeln |
|
|
Eine Ganzzahl in einen Oktal-String umwandeln |
|
|
Konvertiere Objekt x in einen booleschen Wert (True oder False) |
|
|
Konvertiere ein Objekt in eine unveränderliche Byte-Sequenz |
|
|
Konvertiere ein Objekt in ein veränderliches Byte-Array |
|
|
Gibt ein Memoryview-Objekt für das angegebene Argument zurück (ohne Daten zu kopieren) |
|
|
Konvertiert eine Ganzzahl in eine Binärzeichenfolge |
|
|
Gibt die ASCII-Darstellung eines Objekts zurück, wobei Nicht-ASCII-Zeichen escaped werden |