3 Python-Datentypen

Überblick

        Im vorherigen Abschnitt haben wir die grundlegende Syntax von Python vorgestellt, einschließlich: Codierungsformat, Bezeichner, Schlüsselwörter, Kommentare, mehrere Zeilen, Leerzeilen, Einrückungen, Anführungszeichen, Eingabe und Ausgabe, Import, Operatoren, bedingte Steuerung, Schleifen usw. Inhalt. Python ist eine dynamisch typisierte Programmiersprache, was bedeutet, dass Sie beim Erstellen einer Variablen ihren Datentyp nicht im Voraus deklarieren müssen. Python behandelt diese Situation automatisch und führt bei Bedarf Typkonvertierungen durch.

        Python bietet eine Vielzahl von Datentypen, um unterschiedliche Programmieranforderungen zu erfüllen. Das Verstehen und Beherrschen der Eigenschaften, Attribute und Verwendung dieser Datentypen ist entscheidend für das Schreiben von effizientem und zuverlässigem Python-Code. Datentypen in Python können in zwei Typen unterteilt werden: Basistypen und komplexe Typen. Zu den Grundtypen gehören: Zahlen, Zeichenfolgen usw., zu den komplexen Typen gehören: Listen, Tupel, Mengen, Wörterbücher usw.

        Python-Datentypen können in zwei große Kategorien unterteilt werden: unveränderliche Datentypen und veränderliche Datentypen.

        Ein unveränderlicher Datentyp bedeutet, dass sich auch die entsprechende Speicheradresse ändert, wenn sich der Wert der dem Datentyp entsprechenden Variablen ändert. Zu den unveränderlichen Datentypen gehören: Zahlen, Zeichenfolgen und Tupel. Beispiel: Weisen Sie nach der Variablen a = 66 a = 88 zu. Hier wird tatsächlich ein neues digitales Objekt 88 generiert, und a zeigt darauf und das ursprüngliche digitale Objekt 66 wird verworfen. Zu diesem Zeitpunkt beträgt der Wert von a nicht verändert, was ziemlich Yu Xin erzeugt ein.

        Ein variabler Datentyp bedeutet, dass sich die entsprechende Speicheradresse nicht ändert, wenn sich der Wert der Variablen ändert, die dem Datentyp entspricht. Zu den variablen Datentypen gehören: Listen, Mengen, Wörterbücher. Beispiel: Weisen Sie nach der Variablen a = [98, 99, 100] a [1] = 50 zu. Nur der Wert des zweiten Elements von a wird geändert, a selbst wird nicht geändert.

Nummer

        Zahlen in Python unterstützen vier Typen: int, float, bool und complex.

        Ganzzahl (int): Wird zur Darstellung positiver Ganzzahlen, negativer Ganzzahlen und 0 verwendet. Der Wertebereich ist unbegrenzt.

        Float-Typ (Float): Wird zur Darstellung von Werten mit einem Dezimalpunkt verwendet. Die Größe des Gleitkommatyps ist ebenfalls unbegrenzt und kann sehr große Gleitkommazahlen darstellen.

        Boolescher Wert (bool): Wird zur Darstellung der beiden Zustände „Wahr“ und „Falsch“ verwendet und hat nur zwei Werte: „Wahr“ und „Falsch“, die häufig in logischen Operationen und Steueranweisungen verwendet werden.

        Komplexer Typ (komplex): Er besteht aus Real- und Imaginärteilen und kann in der Form a + bj ausgedrückt werden, wobei a der Realteil und b der Imaginärteil ist. In Python können Sie auch die komplexe Funktion verwenden, um eine komplexe Zahl zu erstellen, wie zum Beispiel: a = complex(66, 88).

        Wie kann man also diese vier Arten von Zahlen unterscheiden? Sie können die Typfunktion und die Isinstance-Funktion verwenden. Die Typfunktion wird verwendet, um den Datentyp einer Variablen abzurufen, und die Funktion isinstance wird verwendet, um zu beurteilen, ob eine Variable eine Instanz eines bestimmten Datentyps ist (einschließlich Instanzen der übergeordneten Klasse und Instanzen der Unterklasse).

a = 10
b = 6.9
c = True
d = 25 + 36j
# 输出:<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
print(type(a), type(b), type(c), type(d))

# 以下均输出:True
print(isinstance(a, int))
print(isinstance(b, float))
print(isinstance(c, bool), isinstance(c, int))
print(isinstance(d, complex))

        Darüber hinaus ist Boolean eine Unterklasse von Integer, was bedeutet, dass True und False arithmetische Operationen mit Zahlen durchführen können. True entspricht 1 und False entspricht 0.

a = True + 5
b = 9 - False
# 输出:6 9 True True
print(a, b, True == 1, False == 0)

Zeichenfolge (Zeichenfolge)

        Zeichenfolgen sind Textdaten in Python, die zur Darstellung einer Zeichenfolge verwendet werden. Eine Zeichenfolge ist eine Folge mehrerer Zeichen, die in einfache, doppelte oder dreifache Anführungszeichen eingeschlossen sind, und ihre Länge (d. h. die Anzahl der Zeichen) kann beliebig sein. Beim Zählen von links beginnt der Index bei 0; beim Zählen von rechts beginnt der Index bei -1.

         Um einen Teilstring eines Strings abzurufen, können Sie das Format der Variablen [subscript] oder der Variablen [head subscript: tail subscript] verwenden. Die Variable [Subscript] kann nur eine Zeichenfolge erhalten, die ein einzelnes Zeichen enthält, und die Variable [Head Subscript: Tail Subscript] kann zwischen dem Head Subscript und dem Tail Subscript liegen (Hinweis: einschließlich des Head Subscripts, ohne den Tail Subscript). Wenn der Kopfindex nicht geschrieben wird, ist der Standardwert 0; wenn der Endindex nicht geschrieben wird, sind alle Zeichen ganz rechts der Standardwert. Der Index der Zeichenfolge kann den Indexbereich überschreiten. Nach Überschreiten wird er automatisch auf den verfügbaren Grenzwert begrenzt.

a = 'hello'
# 输出:hello
print(a)
# 输出:e
print(a[1])
# 输出:hell
print(a[0:-1])
# 输出:hello
print(a[0:])
# 输出:hell
print(a[:-1])
# 输出:hello
print(a[:])
# 输出:el
print(a[1:-2])
# 输出:hel
print(a[-5:3])
# 输出:hello
print(a[-16:99])

        Zeichenfolgen können auch mit dem +-Zeichen verkettet, mit dem *-Zeichen kopiert und Sonderzeichen mit dem \-Zeichen maskiert werden. Wenn Sie nicht möchten, dass das \-Symbol maskiert wird, ist dies natürlich auch möglich: Fügen Sie einfach ein r oder R vor der Zeichenfolge hinzu, um anzuzeigen, dass es sich bei der folgenden Zeichenfolge um eine Originalzeichenfolge handelt.

a = 'hello'
b = a + ' CSDN'
# 输出:hello CSDN
print(b)

c = a * 2
# 输出:hellohello
print(c)

d = 3 * a
# 输出:hellohellohello
print(d)

e = 'hello\nCSDN'
# 输出:hello
#CSDN
print(e)

f = r'hello\nCSDN'
# 输出:hello\nCSDN
print(f)

        Im Gegensatz zu Sprachen wie C/C++, Java usw. können Zeichenfolgen in Python nicht geändert werden. Wenn Sie versuchen, der Indexposition der Zeichenfolge einen Wert zuzuweisen, zum Beispiel: a[1]='P', wird eine Fehlermeldung ähnlich der folgenden angezeigt: Das Objekt „str“ unterstützt die Elementzuweisung nicht. Python hat auch keinen separaten Zeichentyp (zum Beispiel: char-Typ in C/C++), ein Zeichen ist eine Zeichenfolge der Länge 1.

Liste (Liste)

        Eine Liste ist ein geordneter Sammlungsdatentyp in Python, der Elemente beliebigen Typs enthalten kann (die Datentypen in derselben Liste können unterschiedlich sein). Eine Liste ist eine Folge von Elementen, die in eckigen Klammern eingeschlossen und durch Kommas getrennt sind. Sie unterstützt verschiedene Vorgänge, darunter das Hinzufügen, Löschen, Ändern und Suchen nach Elementen.

        Listen können wie Zeichenfolgen indiziert und gekürzt werden. Nachdem die Liste gekürzt wurde, wird eine neue Liste mit den gewünschten Elementen zurückgegeben.

a = [10, 20, 30, 40, 50]
# 输出:20 50 [30, 40] [30, 40, 50]
print(a[1], a[-1], a[2:-1], a[2:])
# 输出:[10, 20, 30, 40, 50]
print(a[-10:10])

        Listen können auch mit dem +-Zeichen gespleißt und mit dem *-Zeichen kopiert werden. Wenn Sie feststellen möchten, ob ein Element in der Liste enthalten ist, können Sie das Schlüsselwort in verwenden. Wenn Sie eine Liste durchlaufen möchten, können Sie for in verwenden. Für die umgekehrte Durchquerung verwenden Sie [::-1]. Die Zahlen auf beiden Seiten des ersten Doppelpunkts werden weggelassen, was alle Elemente anzeigt; die rechte Seite des zweiten Doppelpunkts ist -1, was den umgekehrten Durchlauf der Listenelemente anzeigt.

a = [10, 20, 30]
# 输出:[10, 20, 30, 10, 20, 30]
print(a * 2)
# 输出:[10, 20, 30, 1, 2]
print(a + [1, 2])
# 输出:False True
print(66 in a, 20 in a)
# 正向遍历,依次输出:10 20 30
for item in a:
    print(item)
# 反向遍历,依次输出:30 20 10
for item in a[::-1]:
    print(item)

        Python enthält einige globale Methoden zum Ermitteln der Anzahl der Elemente in der Liste, des Maximalwerts der Listenelemente, des Minimalwerts der Listenelemente bzw. der Summe der Listenelemente: len, max, min, sum.

a = [10, 20, 30]
# 输出:3
print(len(a))
# 输出:30
print(max(a))
# 输出:10
print(min(a))
# 输出:60
print(sum(a))

        Zusätzlich zur globalen Methode verfügt die Liste selbst über einige Mitgliedsmethoden, die zum Hinzufügen, Einfügen, Entfernen, Zählen, Umkehren usw. von Operationen in der Liste verwendet werden: Anhängen, Einfügen, Entfernen, Zählen, Umkehren usw.

a = [10, 20, 30]
a.append(66)
a.append(20)
# 输出:[10, 20, 30, 66, 20]
print(a)
# 统计元素20的个数,输出:2
print(a.count(20))
# 查找第一个值匹配的元素的位置,输出:2
print(a.index(30))
# 100不在列表中,运行会报错:100 is not in list
# print(a.index(100))
# 移除最后一个元素并返回,输出:20
print(a.pop())
# 输出:[10, 20, 30, 66]
print(a)
# 在某个位置插入一个元素
a.insert(0, 99)
# 输出:[99, 10, 20, 30, 66]
print(a)
# 反转列表
a.reverse()
# 输出:[66, 30, 20, 10, 99]
print(a)
# 移除第一个值匹配的元素
a.remove(30)
# 输出:[66, 20, 10, 99]
print(a)
# 35不在列表中,运行会报错:x not in list
# a.remove(35)
# 追加另一个序列中的元素
a.extend(["hello", "CSDN"])
# 输出:[66, 20, 10, 99, 'hello', 'CSDN']
print(a)
# 清空列表
a.clear()
# 输出:[]
print(a)

        Hinweis: Die Index- und Remove-Methoden der Liste melden zur Laufzeit einen Fehler, wenn das Element nicht gefunden werden kann, anstatt wie andere Sprachen -1 zurückzugeben oder nichts zu tun. Daher ist die Verwendung der Index- und Remove-Methoden eine bessere Möglichkeit wie folgt.

a = [10, 20, 30]
index = a.index(66) if 66 in a else -1
# 输出:-1
print(index)
if 20 in a:
    a.remove(20)
# 输出:[10, 30]
print(a)

        Operatoren wie >, <, ==, != usw. können direkt für den Listenvergleich verwendet werden. Zwei Listen sind nur dann gleich, wenn sie die gleiche Anzahl an Elementen sowie den Typ und den Wert des Elements an jeder Position haben. Hinweis: Listen verschiedener Typen können nicht verglichen werden und zur Laufzeit wird eine Fehlermeldung ähnlich der folgenden gemeldet: „<“ wird zwischen Instanzen von „int“ und „str“ nicht unterstützt.

a = [10, 20, 30]
b = [20, 10, 30]
# 输出:False
print(a > b)
b = [10, 20, 30]
# 输出:True
print(a == b)
b = ['hello', 'CSDN']
# 不同类型的列表比较会报错,提示:'<' not supported between instances of 'int' and 'str'
# print(a < b)

Tupel

        Ähnlich wie eine Liste ist ein Tupel eine in Klammern eingeschlossene Folge von Elementen und wird normalerweise zur Darstellung eines festen Datensatzes verwendet. Im Gegensatz zu Listen sind Tupel unveränderlich, das heißt, die Elemente im Tupel können nicht geändert werden.

        Hinweis: Wenn das Tupel nur ein Element enthält, muss nach dem Element ein Komma hinzugefügt werden. Andernfalls werden Klammern als Operatoren verwendet, was zu falschen Typen führt.

a = ('hello', 'CSDN', 'Go')
# 输出:<class 'tuple'>
print(type(a))
a = ()
# 空元组,输出:<class 'tuple'>
print(type(a))
a = (66)
# 一个元素时,没有逗号,a被认为是整型,输出:<class 'int'>
print(type(a))
a = (66, )
# 一个元素时,有逗号,a被认为是元组,输出:<class 'tuple'>
print(type(a))

        Wie Strings und Listen können auch Tupel indiziert und gekürzt werden und unterstützen das Spleißen von +-Symbolen, das Kopieren von *-Symbolen und globale Methoden wie len, max, min, sum usw., daher werde ich hier nicht auf Details eingehen. Die Elemente im Tupel dürfen nicht geändert werden. Der Versuch, ihm einen Wert zuzuweisen (z. B. a[0] = 66), führt zu einer Fehlermeldung ähnlich der folgenden: Das Objekt „Tupel“ unterstützt die Elementzuweisung nicht.

a = (10, 20, 30, 40, 50)
# 输出:20 50 (30, 40) (30, 40, 50)
print(a[1], a[-1], a[2:-1], a[2:])
# 输出:(10, 20, 30, 40, 50)
print(a[-10:10])

a = (10, 20, 30)
# 输出:(10, 20, 30, 10, 20, 30)
print(a * 2)
# 输出:(10, 20, 30, 1, 2)
print(a + (1, 2))
# 输出:False True
print(66 in a, 20 in a)
# 正向遍历,依次输出:10 20 30
for item in a:
    print(item)
# 反向遍历,依次输出:30 20 10
for item in a[::-1]:
    print(item)

a = (10, 20, 30)
# 输出:3
print(len(a))
# 输出:30
print(max(a))
# 输出:10
print(min(a))
# 输出:60
print(sum(a))

Set (Sammlung)

        Eine Sammlung in Python ist eine ungeordnete Folge von Elementen, die in geschweifte Klammern eingeschlossen sind und keine doppelten Elemente enthalten können. Mengen unterstützen Mengenoperationen in der Mathematik, wie zum Beispiel: Vereinigung, Schnittmenge, Differenz usw. Um einen Satz zu erstellen, verwenden Sie geschweifte Klammern {} oder die Set-Funktion. Hinweis: Um eine leere Sammlung zu erstellen, müssen Sie die Set-Funktion anstelle von {} verwenden, da {} zum Erstellen eines leeren Wörterbuchs verwendet wird, das im Folgenden vorgestellt wird.

a = {66, 88, 99}
# 使用大括号创建集合,输出:{88, 66, 99}
print(a)
a = {66, 88, 99, 66, 88}
# 集合会自动移除重复元素,输出:{88, 66, 99}
print(a)
a = set(['a', 'b', 'c'])
# 使用set函数从列表创建集合,输出:{'a', 'c', 'b'}
print(a)
a = set('CSDN')
# 使用set函数从字符串创建集合,输出:{'S', 'N', 'D', 'C'}
print(a)
a = set()
# 使用set函数创建空集合,输出:set()
print(a)

        Sie können die Add-Funktion verwenden, um Elemente zur Sammlung hinzuzufügen, und Sie können die Update-Funktion verwenden, um Elemente, Listen, Tupel und Wörterbücher zur Sammlung hinzuzufügen. Wenn das Element bereits in der Sammlung vorhanden ist, unternehmen Sie nichts. Um Elemente aus einer Sammlung zu entfernen, können Sie die Remove-Funktion und die Discard-Funktion verwenden. Der Unterschied besteht darin, dass die Remove-Funktion einen Fehler meldet, wenn das Element nicht vorhanden ist, während die Discard-Funktion keinen Fehler meldet. Die Pop-Funktion kann ein Element in der Sammlung nach dem Zufallsprinzip entfernen. Wenn die Sammlung leer ist, meldet die Pop-Funktion einen Fehler. Mit der Clear-Funktion werden alle Elemente in der Sammlung gelöscht.

a = {66, 88, 99}
# 输出:3
print(len(a))
a.add(100)
# 输出:{88, 66, 99, 100}
print(a)
a.update([1, 2, 3])
# 输出:{1, 66, 99, 100, 2, 3, 88}
print(a)
a.remove(1)
# 输出:{66, 99, 100, 2, 3, 88}
print(a)
a.discard(2)
a.discard(5)
# 输出:{66, 99, 100, 3, 88}
print(a)
a.pop()
# 输出:{99, 100, 3, 88}
print(a)
a.clear()
# 输出:set()
print(a)

        Mengen unterstützen auch Mengenoperationen in der Mathematik, wie zum Beispiel: Vereinigung, Schnittmenge, Differenz usw. Die Operatoren |, &, - und ^ werden verwendet, um die Vereinigung, Schnittmenge, Differenz und XOR zweier Mengen zu berechnen, entsprechend den Funktionen Vereinigung, Schnittmenge, Differenz und symmetrische_Differenz.

a = set('hello')
b = set('hope')
# 计数集合a和b的并集,输出:{'e', 'p', 'h', 'o', 'l'}
print(a | b)
# 计数集合a和b的交集,输出:{'e', 'h', 'o'}
print(a & b)
# 计数在集合a,不在集合b的元素,输出:{'l'}
print(a - b)
# 计算不同时包含于集合a和b的元素,输出:{'l', 'p'}
print(a ^ b)

# 计数集合a和b的并集,输出:{'e', 'p', 'h', 'o', 'l'}
print(a.union(b))
# 计数集合a和b的交集,输出:{'e', 'h', 'o'}
print(a.intersection(b))
# 计数在集合a,不在集合b的元素,输出:{'l'}
print(a.difference(b))
# 计算不同时包含于集合a和b的元素,输出:{'l', 'p'}
print(a.symmetric_difference(b))

Wörterbuch

        Ein Wörterbuch ist ein Schlüssel-Wert-Paar-Datentyp in Python, der zum Speichern der Schlüssel-Wert-Paar-Zuordnungsbeziehung verwendet wird. Ein Wörterbuch ist eine ungeordnete Sammlung von Schlüssel-Wert-Paaren. Der Schlüssel muss eindeutig sein und der Wert darf nicht eindeutig sein. Der Inhalt des Wörterbuchs wird in geschweifte Klammern {} eingeschlossen, und die Schlüssel-Wert-Paare werden durch Kommas und die Schlüssel-Wert-Paare durch Doppelpunkte getrennt.

a = {}
# 空字典,输出:{} 0 <class 'dict'>
print(a, len(a), type(a))
a = {'red': 6, 'blue': 9, 'green': 12}
# 输出:9
print(a['blue'])
# 键不存在时,运行会报错:KeyError: 'black'
# print(a['black'])
if 'white' not in a:
    print('white not in a')
# 移除某个键,必须确保键存在,否则运行时会报错
del a['green']
# 输出:{'red': 6, 'blue': 9}
print(a)

        Wörterbücher bieten Funktionen und Schnittstellen für die schnelle Suche und den Zugriff auf Schlüssel-Wert-Paare.

        get(key, default=None) : gibt den Wert des angegebenen Schlüssels oder den standardmäßig festgelegten Standardwert zurück, wenn der Schlüssel nicht im Wörterbuch enthalten ist.

        setdefault(key, default=None) : Wenn sich der Schlüssel im Wörterbuch befindet, wird der entsprechende Wert zurückgegeben. Wenn er nicht im Wörterbuch enthalten ist, fügen Sie den Schlüssel ein, legen Sie den Standardwert „default“ fest und geben Sie „default“ zurück.

        pop(key[,default]) : Löschen Sie den dem Wörterbuchschlüssel entsprechenden Wert und geben Sie den gelöschten Wert zurück.

        popitem() : Gibt das letzte Paar aus Schlüssel und Wert im Wörterbuch zurück und entfernt es.

        items() : Gibt ein Ansichtsobjekt von Schlüssel-Wert-Paaren zurück.

        keys() : Gibt ein Schlüsselansichtsobjekt zurück.

        Werte() : Gibt ein Ansichtsobjekt mit Werten zurück.

        clear() : Alle Elemente im Wörterbuch löschen.

        fromkeys(seq[, value]) : Erstellen Sie ein neues Wörterbuch, verwenden Sie die Elemente in der Sequenz seq als Schlüssel des Wörterbuchs, und value ist der Anfangswert, der allen Schlüsseln im Wörterbuch entspricht.

a = {'red': 6, 'blue': 9, 'green': 12}
# 输出:9
print(a.get('blue'))
# 输出:100
print(a.get('black', 100))
# 输出:12
print(a.setdefault('green'))
# 输出:100
print(a.setdefault('white', 100))
# 输出:{'red': 6, 'blue': 9, 'green': 12, 'white': 100}
print(a)
a.pop('red')
# 输出:{'blue': 9, 'green': 12, 'white': 100}
print(a)
a.popitem()
# 输出:{'blue': 9, 'green': 12}
print(a)
# 依次输出:blue 9, green 12
for m, n in a.items():
    print(m, n)
# 依次输出:blue, green
for k in a.keys():
    print(k)
# 依次输出:9, 12
for v in a.values():
    print(v)
a.clear()
# 输出:{}
print(a)
a = dict.fromkeys(['lemon', 'apple', 'banana'], 99)
# 输出:{'lemon': 99, 'apple': 99, 'banana': 99}
print(a)

Ich denke du magst

Origin blog.csdn.net/hope_wisdom/article/details/132370235
Empfohlen
Rangfolge