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+)

#!/usr/bin/python3

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

# Variablendefinition
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))
&lt;class 'int'&gt; &lt;class 'float'&gt; &lt;class 'bool'&gt; &lt;class 'complex'&gt;

Außerdem können Sie auchisinstance()um zu bestimmen:

Beispiel

>>> a = 111
>>> 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
&lt;stdin&gt;:1: SyntaxWarning: "is" with 'int' literal. Did you mean "=="?
False
>>> 0 is False
&lt;stdin&gt;:1: SyntaxWarning: "is" with 'int' literal. Did you mean "=="?
False

Warum tritt SyntaxWarning auf?

Python erkennt, dass duisum 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

>>> 5 + 4   # Addition
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

intfloatkomplex
100.03.14j
10015.2045.j
-786-21.99.322e-36j
0o1732.3e+18.876j
-0o112-90.-.6545+0J
-0x260-32.54e1003e+26J
0x6970.2E-124.53e-7j

Hinweis: In Python 3 dürfen Ganzzahlliterale keine führenden Nullen enthalten (wie080), 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

#!/usr/bin/python3

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

>>> print('Ru\noob')
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

>>> word = 'Python'
>>> 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 SierEin 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, darunterand、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 diebool()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

# Werte und Typen des booleschen Typs
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

#!/usr/bin/python3

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 = [1, 2, 3, 4, 5, 6]
>>> 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

def reverseWords(input):

    # 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

#!/usr/bin/python3

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

>>> tup = (1, 2, 3, 4, 5, 6)
>>> 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 "&lt;stdin&gt;", line 1, in &lt;module&gt;
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

#!/usr/bin/python3

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 normalesdictdict.

Beispiel

#!/usr/bin/python3

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

>>> dict([('Example', 1), ('Google', 2), ('Taobao', 3)])
{'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

x = b"hello"           # Ein bytes-Objekt mit dem b-Präfix erstellen
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

x = b"hello"
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

x = b"hello"
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:

FunktionBeschreibung

int(x [,base])

x in eine ganze Zahl umwandeln

float(x)

x in eine Gleitkommazahl umwandeln

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)

Einen gültigen Python-Ausdruck in einem String auswerten und ein Objekt zurückgeben

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)

Eine Ganzzahl in das entsprechende Zeichen umwandeln

ord(x)

Ein Zeichen in seinen Ganzzahlwert (Unicode-Codepunkt) umwandeln

hex(x)

Eine Ganzzahl in einen Hexadezimal-String umwandeln

oct(x)

Eine Ganzzahl in einen Oktal-String umwandeln

Weitere Erweiterungen