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_int = 123
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 Datentypennum_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 wirnum_intJa整型(integer) , num_floJa 浮点型(float)。
  • Ähnlich ist die neue Variablenum_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_int = 123
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

x = int(1)   # x gibt 1 aus
y = int(2.8) # y gibt 2 aus
z = int("3") # z gibt 3 aus

float()Konvertierung in den Gleitkommatyp:

Beispiel

x = float(1)     # x gibt 1.0 aus
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

x = str("s1") # x gibt 's1' aus
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_int = 123
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.

FunktionBeschreibung

int(x [,base])

x in eine ganze Zahl umwandeln

float(x)

Konvertiere x in eine Gleitkommazahl

complex(real [,imag])

Eine komplexe Zahl erstellen

str(x)

Objekt x in einen String umwandeln

repr(x)

Objekt x in einen Ausdrucks-String umwandeln

eval(str)

Wird verwendet, um einen gültigen Python-Ausdruck in einer Zeichenkette auszuwerten und ein Objekt zurückzugeben

tuple(s)

Sequenz s in ein Tupel umwandeln

list(s)

Sequenz s in eine Liste umwandeln

set(s)

In ein veränderbares Set umwandeln

dict(d)

Erstelle ein Dictionary. d muss eine Sequenz von (key, value)-Tupeln sein.

frozenset(s)

In ein unveränderbares Set umwandeln

chr(x)

Konvertiere eine Ganzzahl in ein Zeichen

ord(x)

Konvertiere ein Zeichen in seinen Ganzzahlwert

hex(x)

Eine Ganzzahl in einen Hexadezimal-String umwandeln

oct(x)

Eine Ganzzahl in einen Oktal-String umwandeln

bool(x)

Konvertiere Objekt x in einen booleschen Wert (True oder False)

bytes([source[, encoding[, errors]]])

Konvertiere ein Objekt in eine unveränderliche Byte-Sequenz

bytearray([source[, encoding[, errors]]])

Konvertiere ein Objekt in ein veränderliches Byte-Array

memoryview(obj)

Gibt ein Memoryview-Objekt für das angegebene Argument zurück (ohne Daten zu kopieren)

bin(x)

Konvertiert eine Ganzzahl in eine Binärzeichenfolge

ascii(x)

Gibt die ASCII-Darstellung eines Objekts zurück, wobei Nicht-ASCII-Zeichen escaped werden

Weitere Erweiterungen