Python3 Grundlegende Datentypen
In Python müssen Variablen nicht deklariert werden. Jeder Variable muss vor ihrer Verwendung ein Wert zugewiesen werden, und die Variable wird erst nach der Zuweisung erstellt.
In Python ist eine Variable nur eine Variable; sie hat keinen Typ. Was wir"Typ"nennen, ist der Typ des Objekts im Speicher, auf das die Variable verweist.
Das Gleichheitszeichen=wird verwendet, um Variablen Werte zuzuweisen. Links vom Gleichheitszeichen steht der Variablenname, und rechts der in der Variable gespeicherte Wert. Zum Beispiel:
Beispiel (Python 3.0+)
counter = 100 # Ganzzahlvariable
miles = 1000.0 # Gleitkommavariable
name = "example" # Zeichenkette
print(counter)
print(miles)
print(name)
Beispiel ausführen »
Die Ausführung des obigen Programms gibt das folgende Ergebnis aus:
100 1000.0 example
Mehrfache Variablenzuweisung
Python ermöglicht es Ihnen, mehreren Variablen gleichzeitig Werte zuzuweisen. Zum Beispiel:
a = b = c = 1
Das obige Beispiel erstellt ein Integer-Objekt mit dem Wert 1, und allen drei Variablen wird derselbe Wert zugewiesen.
Sie können auch mehreren Variablen gleichzeitig unterschiedliche Werte zuweisen. Zum Beispiel:
a, b, c = 1, 2, "example"
Im obigen Beispiel werden die Integer-Objekte 1 und 2 den Variablen a bzw. b zugewiesen, und das String-Objekt "example" wird der Variable c zugewiesen.
Sie können die Funktiontype()verwenden, um den Typ einer Variablen anzuzeigen:
Beispiel
x = 10 # Ganzzahl
y = 3.14 # Gleitkommazahl
name = "Alice" # Zeichenkette
is_active = True # boolesch
# Mehrfache Variablenzuweisung
a, b, c = 1, 2, "three"
# Daten prüfen
type(# <class 'int'>(x)) # <class 'int'>
print(type(y)) # <class 'float'>
print(type(name)) # <class 'str'>
print(type(is_active)) # <class 'bool'>
Standarddatentypen
Python3 hat 6 Standarddatentypen sowie den booleschen Typ bool (bool ist eine Unterklasse von int und wird manchmal separat aufgeführt):
- Number
- String
- bool (boolescher Typ)
- Liste
- Tuple
- Set
- Wörterbuch
Je nachdem, ob sie veränderbar sind, lassen sie sich in die folgenden zwei Kategorien einteilen:
- Unveränderliche Daten (4):Number, String, bool, Tuple
- Veränderbare Daten (3):List, Dictionary, Set
Darüber hinaus gibt es einige fortgeschrittene Datentypen, wie den Bytearray-Typ bytes.
Number
Python3 unterstütztint, float, bool, complex。
In Python 3 gibt es nur einen Ganzzahltyp, int, der als Long Integer dargestellt wird; es gibt kein Long wie in Python 2.
Die eingebautetype()Funktion kann verwendet werden, um den Typ des Objekts abzufragen, auf das eine Variable verweist.
>>> a, b, c, d = 20, 5.5, True, 4+3j >>> print(type(a), type(b), type(c), type(d)) <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
Außerdem können Sie auchisinstance()um zu bestimmen:
Beispiel
>>> isinstance(a, int)
True
isinstanceundtypeDer Unterschied ist:
type()betrachtet eine Unterklasse nicht als Typ der Elternklasse.isinstance()betrachtet eine Unterklasse als Typ der Elternklasse.
>>> class A: ... pass ... >>> class B(A): ... pass ... >>> isinstance(A(), A) True >>> type(A()) == A True >>> isinstance(B(), A) True >>> type(B()) == A False
Hinweis:In Python3 ist bool eine Unterklasse von int. True und False können zu Zahlen addiert werden;True==1、False==0es gibtTruezurück, aber du kannstisum die Objektidentität zu bestimmen.
>>> issubclass(bool, int) True >>> True == 1 True >>> False == 0 True >>> True + 1 2 >>> False + 1 1 >>> 1 is True <stdin>:1: SyntaxWarning: "is" with 'int' literal. Did you mean "=="? False >>> 0 is False <stdin>:1: SyntaxWarning: "is" with 'int' literal. Did you mean "=="? FalseWarum tritt SyntaxWarning auf?
Python erkennt, dass du
isum ein Integer-Literal (wie 1) mit True zu vergleichen. Dies ist normalerweise ein Codefehler, weilisvergleicht die Objektidentität (ob sie dasselbe Objekt sind) und nicht, ob die Werte gleich sind. Python empfiehlt die Verwendung von==zum Vergleichen von Werten, es sei denn, du musst wirklich prüfen, ob es dasselbe Objekt ist.In Python 2 gab es keinen booleschen Typ; es verwendete die Zahl 0 für False und 1 für True.
Wenn du einen Wert zuweist, wird ein Number-Objekt erstellt:
var1 = 1 var2 = 10
Du kannst diedel-Anweisung verwenden, um Objektreferenzen zu löschen:
del var1[, var2[, var3[...., varN]]]
Zum Beispiel:
del var del var_a, var_b
Numerische Operationen
Beispiel
9
>>> 4.3 - 2 # Subtraktion
2.3
>>> 3 * 7 # Multiplikation
21
>>> 2 / 4 # Division, ergibt eine Gleitkommazahl
0.5
>>> 2 // 4 # Abrundungsdivision, ergibt eine Ganzzahl
0
>>> 17 % 3 # Modulo
2
>>> 2 ** 5 # Potenzierung
32
Hinweis:
- Python kann Werte gleichzeitig mehreren Variablen zuweisen, z. B.
a, b = 1, 2。 - Eine Variable kann durch Zuweisung auf Objekte unterschiedlicher Typen zeigen.
- Die Division von Zahlen umfasst zwei Operatoren:/gibt einen Float zurück,//gibt eine ganze Zahl zurück (abgerundet).
- Bei gemischten Berechnungen wandelt Python Ganzzahlen automatisch in Floats um.
Beispiele für numerische Typen
| int | float | komplex |
|---|---|---|
| 10 | 0.0 | 3.14j |
| 100 | 15.20 | 45.j |
| -786 | -21.9 | 9.322e-36j |
| 0o17 | 32.3e+18 | .876j |
| -0o112 | -90. | -.6545+0J |
| -0x260 | -32.54e100 | 3e+26J |
| 0x69 | 70.2E-12 | 4.53e-7j |
Hinweis: In Python 3 dürfen Ganzzahlliterale keine führenden Nullen enthalten (wie
080), Oktalzahlen müssen das0oPräfix verwenden (wie0o17), Hexadezimalzahlen verwenden das0xPräfix verwenden (wie0x69), Binärzahlen verwenden das0bPräfix.
Python unterstützt auch komplexe Zahlen. Eine komplexe Zahl besteht aus einem Realteil und einem Imaginärteil und kann mita + bjodercomplex(a, b)ausgedrückt werden. Der Realteilaund der Imaginärteilbsind beide vom Typ float.
String
Zeichenketten in Python werden in einfache Anführungszeichen'oder doppelte Anführungszeichen"eingeschlossen, und Backslashes werden verwendet\, um Sonderzeichen zu escapen.
Die Syntax für String-Slicing ist wie folgt:
variable[start index:end index]
Indexwerte beginnen bei 0, und -1 ist die Position vom Ende.
Das Pluszeichen+ist der String-Verkettungsoperator, und das Sternchen*gibt die Wiederholung der aktuellen Zeichenkette an, und die damit kombinierte Zahl ist die Anzahl der Wiederholungen. Ein Beispiel ist wie folgt:
Beispiel
my_str = 'Example' # eine String-Variable definieren (vermeiden Sie es, str als Variablennamen zu verwenden, da es den eingebauten Typ verdeckt)
print(my_str) # die gesamte Zeichenkette ausgeben: Example
print(my_str[0:-1]) # von Index 0 bis zum vorletzten Zeichen ausgeben (ohne das letzte): Runoo
print(my_str[0]) # das erste Zeichen ausgeben: R
print(my_str[2:5]) # Zeichen an den Indizes 2, 3, 4 ausgeben (ohne Index 5): noo
print(my_str[2:]) # von Index 2 bis zum Ende ausgeben: noob
print(my_str * 2) # zweimal wiederholen: ExampleExample
print(my_str + "TEST") # Zeichenkettenverkettung: ExampleTEST
Die Ausführung des obigen Programms gibt das folgende Ergebnis aus:
Example Runoo R noo noob ExampleExample ExampleTEST
Python verwendet Backslashes\, um Sonderzeichen zu escapen. Wenn du nicht möchtest, dass der Backslash als Escape-Zeichen fungiert, kannst du einrvor die Zeichenkette setzen, was einen Raw-String kennzeichnet:
Beispiel
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
Darüber hinaus kann der Backslash (\) als Zeilenfortsetzungszeichen dienen, was anzeigt, dass die nächste Zeile eine Fortsetzung der vorherigen Zeile ist. Du kannst auch"""..."""oder'''...'''verwenden, um mehrere Zeilen zu überspannen.
Beachte, dass Python keinen separaten Zeichentyp hat; ein Zeichen ist eine Zeichenkette der Länge 1.
Beispiel
>>> print(word[0], word[5])
P n
>>> print(word[-1], word[-6])
n P
Anders als C-Strings können Python-Strings nicht geändert werden. Das Zuweisen eines Werts an eine Indexposition, wie z. B.word[0] = 'm', verursacht einen Fehler.
Hinweis:
- Backslashes können zum Escapen verwendet werden; verwenden Sie
rEin Präfix kann verhindern, dass Backslashes escaped werden (Raw-Strings). - Strings können den
+Operator zum Verketten und den*Operator zum Wiederholen. - Strings in Python haben zwei Indexierungsmethoden: beginnend bei 0 von links nach rechts und beginnend bei -1 von rechts nach links.
- Strings in Python können nicht geändert werden; Strings sind ein unveränderlicher Typ.
bool (boolescher Typ)
Der boolesche Typ ist True oder False. In Python sind True und False beides Schlüsselwörter, die boolesche Werte repräsentieren.
Der boolesche Typ kann zur Steuerung des Programmablaufs verwendet werden, z. B. um festzustellen, ob eine Bedingung erfüllt ist, oder um einen Codeabschnitt auszuführen, wenn eine Bedingung erfüllt ist.
Merkmale des booleschen Typs:
- Der boolesche Typ hat nur zwei Werte: True und False.
- bool ist eine Unterklasse von int, daher können boolesche Werte als Ganzzahlen verwendet werden, wobei True äquivalent zu 1 und False äquivalent zu 0 ist.
- Der boolesche Typ kann mit anderen Datentypen wie Zahlen und Zeichenketten verglichen werden. Beim Vergleich behandelt Python True als 1 und False als 0.
- Der boolesche Typ kann mit logischen Operatoren verwendet werden, darunter
and、orundnot, um mehrere boolesche Ausdrücke zu kombinieren. - Der boolesche Typ kann auch in andere Datentypen wie Ganzzahlen, Gleitkommazahlen und Zeichenketten umgewandelt werden. Bei der Umwandlung wird True zu 1 und False zu 0.
- Sie können die
bool()Funktion, um Werte anderer Typen in boolesche Werte umzuwandeln. Die folgenden Werte sind, wenn sie in boolesche Werte umgewandelt werden,False:None、False, Null (0、0.0、0j), leere Sequenzen (wie''、()、[]) und leere Mappings (wie{}). Alle anderen Werte sind, wenn sie in boolesche Werte umgewandelt werden,True。
Beispiel
a = True
b = False
print(type(a)) # <class 'bool'>
print(type(b)) # <class 'bool'>
# Ganzzahlige Darstellung des booleschen Typs
print(int(True)) # 1
print(int(False)) # 0
# Verwende die Funktion bool() zur Konvertierung
print(bool(0)) # False
print(bool(42)) # True
print(bool('')) # False
print(bool('Python')) # True
print(bool([])) # False
print(bool([1, 2, 3])) # True
# Boolesche Logikoperationen
print(True and False) # False
print(True or False) # True
print(not True) # False
# Boolesche Vergleichsoperationen
print(5 > 3) # True
print(2 == 2) # True
print(7 < 4) # False
# Boolesche Werte im Kontrollfluss
if True:
print("This will always print")
if not False:
print("This will also always print")
x = 10
if x:
print(x ist ein Wert ungleich Null, der in einem booleschen Kontext True ist)
Hinweis:In Python gelten alle Zahlen ungleich Null und nichtleere Zeichenketten, Listen, Tupel und andere Datentypen als True; nur0, leere Zeichenketten, leere Listen und leere Tupelusw. gelten als False. Wenn Sie also eine boolesche Typkonvertierung durchführen, müssen Sie auf den Wahrheitsgehalt des Datentyps achten.
Liste
Die Liste ist der am häufigsten verwendete Datentyp in Python.
Listen können die meisten Sammlungsdatenstrukturen implementieren. Die Typen der Elemente in einer Liste können unterschiedlich sein; sie unterstützt Zahlen, Zeichenketten und kann sogar Listen enthalten (d. h. verschachtelte Listen).
Listen werden in eckigen Klammern[]geschrieben, wobei die Elemente dazwischen durch Kommas getrennt sind.
Wie Zeichenketten können Listen ebenfalls indiziert und geschnitten werden. Nachdem eine Liste geschnitten wurde, gibt sie eine neue Liste mit den gewünschten Elementen zurück.
Die Syntax für Listen-Slicing lautet wie folgt:
variable[start index:end index]
Indexwerte nehmen0als Startwert,-1als Startposition vom Ende.

Das Pluszeichen+ist der Listenverkettungsoperator; das Sternchen*ist die Wiederholungsoperation. Beispiel:
Beispiel
my_list = ['abcd', 786, 2.23, 'example', 70.2] # Vermeide die Verwendung von list als Variablennamen; dadurch wird der eingebaute Typ verdeckt
tinylist = [123, 'example']
print(my_list) # Gibt die gesamte Liste aus: ['abcd', 786, 2.23, 'example', 70.2]
print(my_list[0]) # Gibt das erste Element aus (Index 0): abcd
print(my_list[1:3]) # Gibt Elemente an den Indizes 1 und 2 aus (ohne Index 3): [786, 2.23]
print(my_list[2:]) # Gibt alle Elemente von Index 2 bis zum Ende aus: [2.23, 'example', 70.2]
print(tinylist * 2) # Gibt tinylist zweimal aus: [123, 'example', 123, 'example']
print(my_list + tinylist) # Verkettet zwei Listen
Die Ausgabe des obigen Beispiels ist:
['abcd', 786, 2.23, 'example', 70.2] abcd [786, 2.23] [2.23, 'example', 70.2] [123, 'example', 123, 'example'] ['abcd', 786, 2.23, 'example', 70.2, 123, 'example']
Anders als bei Python-Strings können die Elemente in einer Liste geändert werden:
Beispiel
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = [] # Setze die entsprechenden Elementwerte auf eine leere Liste, d. h., lösche diese Elemente
>>> a
[9, 2, 6]
Eine Liste hat viele eingebaute Methoden, wie zum Beispielappend()、pop()usw., die später behandelt werden.
Hinweis:
- Listen werden zwischen eckigen Klammern geschrieben, wobei die Elemente durch Kommas getrennt sind.
- Wie Zeichenketten können Listen indiziert und geschnitten werden.
- Listen können den+Operator zur Verkettung verwenden.
- Die Elemente in einer Liste können geändert werden (veränderbarer Typ).
Das Slicing von Python-Listen kann einen dritten Parameter akzeptieren, der als Schrittweite des Slices dient. Das folgende Beispiel setzt die Schrittweite auf 2 (jedes zweite Element) von Index 1 bis Index 4, um die Liste zu schneiden:

Wenn der dritte Parameter negativ ist, zeigt dies ein Rückwärtslesen an. Das folgende Beispiel wird verwendet, um die Reihenfolge der Wörter in einer Zeichenkette umzukehren:
Beispiel
# Teile die Zeichenkette anhand von Leerzeichen auf, um die Wörter in eine Liste zu trennen
inputWords = input.split(" ")
# Erklärung der drei Parameter von inputWords[-1::-1]:
# Der erste Parameter -1 bedeutet, beim letzten Element zu beginnen
# Der zweite Parameter ist leer, was bedeutet, bis zum Anfang der Liste zu gehen
# Der dritte Parameter -1 bedeutet, rückwärts zu schreiten (sich jedes Mal eine Position nach links zu bewegen)
inputWords = inputWords[-1::-1]
# Die Wörter wieder mit Leerzeichen verbinden
output = ' '.join(inputWords)
return output
if __name__ == "__main__":
input = 'I like example'
rw = reverseWords(input)
print(rw)
Das Ausgabeergebnis ist:
example like I
Tuple
Ein Tupel ähnelt einer Liste, außer dass Tupel-Elemente nicht geändert werden können. Tupel werden in Klammern geschrieben()wobei die Elemente durch Kommas getrennt sind.
Die Elementtypen in einem Tupel können ebenfalls unterschiedlich sein:
Beispiel
my_tuple = ('abcd', 786, 2.23, 'example', 70.2) # tuple nicht als Variablennamen verwenden
tinytuple = (123, 'example')
print(my_tuple) # Das vollständige Tupel ausgeben
print(my_tuple[0]) # Das erste Element ausgeben: abcd
print(my_tuple[1:3]) # Die Elemente an den Indizes 1 und 2 ausgeben: (786, 2.23)
print(my_tuple[2:]) # Alle Elemente ab Index 2 ausgeben
print(tinytuple * 2) # tinytuple zweimal ausgeben
print(my_tuple + tinytuple) # Zwei Tupel verketten
Die Ausgabe des obigen Beispiels ist:
('abcd', 786, 2.23, 'example', 70.2)
abcd
(786, 2.23)
(2.23, 'example', 70.2)
(123, 'example', 123, 'example')
('abcd', 786, 2.23, 'example', 70.2, 123, 'example')
Tupel ähneln Strings; sie können mit Indizes beginnend bei 0 indexiert werden, wobei -1 die Position vom Ende angibt, und sie können auch geschnitten werden.
Tatsächlich kann ein String als eine spezielle Art von Tupel betrachtet werden.
Beispiel
>>> print(tup[0])
1
>>> print(tup[1:5])
(2, 3, 4, 5)
>>> tup[0] = 11 # Das Ändern von Tupel-Elementen ist unzulässig
Traceback (jüngster Aufruf zuletzt):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Obwohl Tupel-Elemente nicht geändert werden können, kann ein Tupel veränderliche Objekte wie eine Liste enthalten.
Das Erstellen eines Tupels mit 0 oder 1 Elementen ist speziell und hat einige zusätzliche Syntaxregeln:
tup1 = () # 空元组 tup2 = (20,) # 一个元素,需要在元素后添加逗号
Wenn du ein Tupel mit nur einem Element erstellen möchtest, musst du nach dem Element ein Komma hinzufügen, um es von einem einfachen Wert zu unterscheiden. Ohne das Komma interpretiert Python die Klammern als Klammern in einem mathematischen Ausdruck:
not_a_tuple = (42) # 这是整数 42,不是元组
string、listundtupleAlle gehören zum Sequenztyp.
Hinweis:
- Wie Strings können die Elemente eines Tupels nicht geändert werden (unveränderlicher Typ).
- Tupel können auch auf dieselbe Weise wie Listen indexiert und geschnitten werden.
- Beachte die speziellen Syntaxregeln zum Erstellen von Tupeln mit 0 oder 1 Elementen.
- Tupel können auch den+Operator zur Verkettung verwenden.
Set
Ein Set in Python ist ein ungeordneter, veränderlicher Datentyp, der zum Speichern eindeutiger Elemente verwendet wird. Elemente in einem Set wiederholen sich nicht, und gängige Mengenoperationen wie Schnittmenge, Vereinigung und Differenz können durchgeführt werden.
In Python werden Sets durch geschweifte Klammern{}dargestellt, wobei Elemente durch Kommas,getrennt werden. Du kannst auch dieset()-Funktion verwenden, um ein Set zu erstellen.
Hinweis:Um ein leeres Set zu erstellen, musst duset()anstelle von{}verwenden, da{}ein leeres Wörterbuch erstellt.
Erstellungsformat:
parame = {value01, value02, ...}
或者
set(value)
Beispiel
sites = {'Google', 'Taobao', 'Example', 'Facebook', 'Zhihu', 'Baidu'}
print(sites) # Ausgabe des Sets (ungeordnet, doppelte Elemente werden automatisch entfernt)
# Mitgliedschaftstest
if 'Example' in sites:
print('Example ist im Set')
else:
print('Example ist nicht im Set')
# Sets unterstützen Mengenoperationen
a = set('abracadabra')
b = set('alacazam')
print(a) # Eindeutige Zeichen in a
print(a - b) # Differenz zwischen a und b (in a, aber nicht in b)
print(a | b) # Vereinigung von a und b (in a oder b)
print(a & b) # Schnittmenge von a und b (sowohl in a als auch in b)
print(a ^ b) # Symmetrische Differenz von a und b (in a oder b, aber nicht in beiden)
Die Ausgabe des obigen Beispiels ist:
{'Zhihu', 'Baidu', 'Taobao', 'Example', 'Google', 'Facebook'}
Example 在集合中
{'b', 'c', 'a', 'r', 'd'}
{'r', 'b', 'd'}
{'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'}
{'c', 'a'}
{'z', 'b', 'm', 'r', 'l', 'd'}
Wörterbuch
Ein Dictionary ist ein weiterer sehr nützlicher integrierter Datentyp in Python.
Ein Dictionary ist ein Mapping-Typ, der{}als seinen Bezeichner verwendet; es ist eineSchlüssel: WertSammlung. Schlüssel müssen unveränderliche Typen sein, und Schlüssel müssen innerhalb desselben Dictionarys eindeutig sein.
Hinweis:Seit Python 3.7 behalten Dictionaries dieEinfügereihenfolgebei und sind nicht mehr ungeordnet. Wenn Sie geordnete Dictionary-Funktionen benötigen, verwenden Sie einfach ein normales
dictdict.
Beispiel
my_dict = {}
my_dict['one'] = "1 - Rookie Tutorial"
my_dict[2] = "2 - Rookie Tools"
tinydict = {'name': 'example', 'code': 1, 'site': 'www.example.com'}
print(my_dict['one']) # Gib den Wert mit dem Schlüssel 'one' aus
print(my_dict[2]) # Gib den Wert mit dem Schlüssel 2 aus
print(tinydict) # Gib das vollständige Wörterbuch aus
print(tinydict.keys()) # Gib alle Schlüssel aus
print(tinydict.values()) # Gib alle Werte aus
Die Ausgabe des obigen Beispiels ist:
1 - Example
2 - Example工具
{'name': 'example', 'code': 1, 'site': 'www.example.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['example', 1, 'www.example.com'])
Konstruktordict()Du kannst ein Wörterbuch direkt aus einer Folge von Schlüssel-Wert-Paaren konstruieren:
Beispiel
{'Example': 1, 'Google': 2, 'Taobao': 3}
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
>>> dict(Example=1, Google=2, Taobao=3)
{'Example': 1, 'Google': 2, 'Taobao': 3}
{x: x**2 for x in (2, 4, 6)}Dies verwendet eine Dictionary-Comprehension. Weitere Informationen zu Comprehensions findest du unter:Python-Comprehensions。
Darüber hinaus verfügen Wörterbuchtypen auch über einige integrierte Funktionen, wie zum Beispielclear()、keys()、values()usw.
Hinweis:
- Ein Wörterbuch ist ein Mapping-Typ, und seine Elemente sind Schlüssel-Wert-Paare.
- Dictionary-Schlüssel müssen von unveränderlichem Typ sein und dürfen nicht doppelt vorkommen.
- Um ein leeres Dictionary zu erstellen, verwende{}。
- Seit Python 3.7 behalten Dictionaries die Einfügereihenfolge bei.
bytes-Typ
In Python 3 repräsentiert der Typ `bytes` eine unveränderliche binäre Sequenz. Anders als beim String-Typ sind die Elemente in einem `bytes`-Objekt ganzzahlige Werte (Ganzzahlen zwischen 0 und 255), keine Unicode-Zeichen.
Der Typ `bytes` wird üblicherweise verwendet, um Binärdaten zu verarbeiten, wie z. B. Bilddateien, Audiodateien, Videodateien usw. In der Netzwerkprogrammierung wird der Typ `bytes` ebenfalls häufig verwendet, um Binärdaten zu übertragen.
Die gebräuchlichste Methode, ein `bytes`-Objekt zu erstellen, ist die Verwendung einesbPräfixes:
Beispiel
print(x) # b'hello'
print(type(x)) # <class 'bytes'>
print(x[0]) # 104 (ASCII-Wert von 'h', bytes-Elemente sind Ganzzahlen)
Sie können auch diebytes()Funktion, um Objekte anderer Typen in den Typ `bytes` umzuwandeln; der zweite Parameter gibt die Kodierung an:
x = bytes("hello", encoding="utf-8")
Ähnlich wie der String-Typ unterstützt auch der `bytes`-Typ Slicing, Verkettung, Suche, Ersetzung usw. Da der `bytes`-Typ unveränderlich ist, erfordern Änderungsoperationen das Erstellen eines neuen `bytes`-Objekts:
Beispiel
y = x[1:3] # Slicing-Operation, ergibt b'el'
z = x + b"world" # Verkettungsoperation, ergibt b'helloworld'
print(y) # b'el'
print(z) # b'helloworld'
Beachten Sie, dass die Elemente im `bytes`-Typ ganzzahlige Werte sind, daher müssen Sie bei Vergleichsoperationen den entsprechenden ganzzahligen Wert verwenden. Sie können dieord()Funktion verwenden, um ein Zeichen in seinen entsprechenden ganzzahligen Wert umzuwandeln:
Beispiel
if x[0] == ord("h"): # ord("h") gibt 104 zurück
print("Das erste Element ist 'h'")
Python-Datentypkonvertierung
Manchmal müssen wir integrierte Datentypen konvertieren; verwenden Sie einfach den Datentyp als Funktionsnamen. Im nächsten KapitelPython3-Datentypkonvertierungwird ausführlich vorgestellt.
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 |
|
x in eine Gleitkommazahl umwandeln |
|
Eine komplexe Zahl erstellen |
|
Objekt x in einen String umwandeln |
|
Objekt x in einen Ausdrucks-String umwandeln |
|
Einen gültigen Python-Ausdruck in einem String auswerten und ein Objekt zurückgeben |
|
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 |
|
Eine Ganzzahl in das entsprechende Zeichen umwandeln |
|
Ein Zeichen in seinen Ganzzahlwert (Unicode-Codepunkt) umwandeln |
|
Eine Ganzzahl in einen Hexadezimal-String umwandeln |
|
Eine Ganzzahl in einen Oktal-String umwandeln |