Grundlegende Datentypen in Python
Jetzt kennen Siehow to interact with the Python interpreter and execute Python code. Es ist Zeit, sich mit der Python-Sprache zu beschäftigen. Zunächst werden die grundlegenden Datentypen erläutert, die in Python integriert sind.
Folgendes lernen Sie in diesem Tutorial:
-
Sie lernen einige grundlegendenumeric, stringundBoolean-Typen kennen, die in Python integriert sind. Am Ende dieses Tutorials werden Sie wissen, wie Objekte dieser Art aussehen und wie sie dargestellt werden.
-
Sie erhalten auch einen Überblick über Pythons integriertefunctions.. Dies sind vorab geschriebene Codestücke, die Sie aufrufen können, um nützliche Dinge zu tun. Sie haben bereits die integrierte Funktion
print()
gesehen, aber es gibt viele andere.
Kostenloser PDF-Download: Python 3 Spickzettel
__ Take the Quiz: Testen Sie Ihr Wissen mit unserem interaktiven Quiz „Grundlegende Datentypen in Python“. Nach Abschluss erhalten Sie eine Punktzahl, mit der Sie Ihren Lernfortschritt im Laufe der Zeit verfolgen können:
Ganze Zahlen
In Python 3 gibt es praktisch keine Begrenzung für die Länge eines ganzzahligen Werts. Natürlich wird es wie alle Dinge durch die Speicherkapazität Ihres Systems eingeschränkt, aber darüber hinaus kann eine Ganzzahl so lang sein, wie Sie es benötigen:
>>>
>>> print(123123123123123123123123123123123123123123123123 + 1)
123123123123123123123123123123123123123123123124
Python interpretiert eine Folge von Dezimalstellen ohne Präfix als Dezimalzahl:
>>>
>>> print(10)
10
Die folgenden Zeichenfolgen können einem ganzzahligen Wert vorangestellt werden, um eine andere Basis als 10 anzugeben:
Präfix | Deutung | Base |
---|---|---|
|
Binär |
2 |
|
Oktal |
8 |
|
Hexadezimal |
16 |
Zum Beispiel:
>>>
>>> print(0o10)
8
>>> print(0x10)
16
>>> print(0b10)
2
Weitere Informationen zu ganzzahligen Werten mit nicht dezimalen Basen finden Sie auf den folgenden Wikipedia-Websites:Binary,Octal undHexadecimal.
Der zugrunde liegende Typ einer Python-Ganzzahl, unabhängig von der Basis, mit der sie angegeben wurde, heißtint
:
>>>
>>> type(10)
>>> type(0o10)
>>> type(0x10)
Note: Dies ist ein guter Zeitpunkt, um zu erwähnen, dass Sie die Funktionprint()
nicht verwenden müssen, wenn Sie in einer REPL-Sitzung einen Wert anzeigen möchten. Wenn Sie den Wert einfach an der Eingabeaufforderung von>>>
eingeben und[.kbd .key-enter]#Enter # drücken, wird Folgendes angezeigt:
>>>
>>> 10
10
>>> 0x10
16
>>> 0b10
2
Viele der Beispiele in dieser Lernserie verwenden diese Funktion.
Beachten Sie, dass dies in einer Skriptdatei nicht funktioniert. Ein Wert, der in einer Skriptdatei in einer eigenen Zeile angezeigt wird, hat keine Auswirkungen.
Gleitkommazahlen
Derfloat
-Typ in Python bezeichnet eine Gleitkommazahl. float
Werte werden mit einem Dezimalpunkt angegeben. Optional kann das Zeichene
oderE
gefolgt von einer positiven oder negativen Ganzzahl angehängt werden, umscientific notation anzugeben:
>>>
>>> 4.2
4.2
>>> type(4.2)
>>> 4.
4.0
>>> .2
0.2
>>> .4e7
4000000.0
>>> type(.4e7)
>>> 4.2e-4
0.00042
Deep Dive: Gleitkomma-Darstellung
Im Folgenden finden Sie ausführlichere Informationen dazu, wie Python Gleitkommazahlen intern darstellt. Sie können in Python problemlos Gleitkommazahlen verwenden, ohne sie auf dieser Ebene zu verstehen. Machen Sie sich also keine Sorgen, wenn dies zu kompliziert erscheint. Die Informationen werden hier angezeigt, falls Sie neugierig sind.
Fast alle Plattformen repräsentieren die Werte von Python
float
als 64-Bit-Werte mit doppelter Genauigkeit gemäß dem Standard vonIEEE 754. In diesem Fall beträgt der Maximalwert, den eine Gleitkommazahl haben kann, ungefähr 1,8 × 10308. Python gibt eine Zahl an, die größer ist als die Zeichenfolgeinf
:>>>
>>> 1.79e308 1.79e+308 >>> 1.8e308 inf
Die Zahl, die einer Zahl ungleich Null am nächsten kommt, ist ungefähr 5,0 × 10-324. Alles, was näher an Null liegt, ist effektiv Null:
>>>
>>> 5e-324 5e-324 >>> 1e-325 0.0
Gleitkommazahlen werden intern als binäre (Basis-2) Brüche dargestellt. Die meisten Dezimalbrüche können nicht genau als binäre Brüche dargestellt werden, daher ist in den meisten Fällen die interne Darstellung einer Gleitkommazahl eine Annäherung an den tatsächlichen Wert. In der Praxis ist der Unterschied zwischen dem tatsächlichen Wert und dem dargestellten Wert sehr gering und sollte normalerweise keine signifikanten Probleme verursachen.
Further Reading: Weitere Informationen zur Gleitkomma-Darstellung in Python und den möglichen Fallstricken finden Sie unterFloating Point Arithmetic: Issues and Limitations in der Python-Dokumentation.
Komplexe Zahlen
Komplexe Zahlen werden als<real part>+<imaginary part>j
angegeben. Zum Beispiel:
>>>
>>> 2+3j
(2+3j)
>>> type(2+3j)
Streicher
Zeichenfolgen sind Sequenzen von Zeichendaten. Der Zeichenfolgentyp in Python heißtstr
.
String-Literale können durch einfache oder doppelte Anführungszeichen getrennt werden. Alle Zeichen zwischen dem öffnenden Trennzeichen und dem passenden schließenden Trennzeichen sind Teil der Zeichenfolge:
>>>
>>> print("I am a string.")
I am a string.
>>> type("I am a string.")
>>> print('I am too.')
I am too.
>>> type('I am too.')
Eine Zeichenfolge in Python kann beliebig viele Zeichen enthalten. Die einzige Grenze sind die Speicherressourcen Ihres Computers. Eine Zeichenfolge kann auch leer sein:
>>>
>>> ''
''
Was ist, wenn Sie ein Anführungszeichen als Teil der Zeichenfolge selbst einfügen möchten? Ihr erster Impuls könnte sein, so etwas zu versuchen:
>>>
>>> print('This string contains a single quote (') character.')
SyntaxError: invalid syntax
Wie Sie sehen, funktioniert das nicht so gut. Die Zeichenfolge in diesem Beispiel wird mit einem einfachen Anführungszeichen geöffnet, sodass Python davon ausgeht, dass das nächste einfache Anführungszeichen, das in Klammern steht und Teil der Zeichenfolge sein soll, das abschließende Trennzeichen ist. Das endgültige einfache Anführungszeichen ist dann ein Streu und verursacht den angezeigten Syntaxfehler.
Wenn Sie einen Anführungszeichentyp in die Zeichenfolge aufnehmen möchten, können Sie die Zeichenfolge am einfachsten durch den anderen Typ trennen. Wenn eine Zeichenfolge ein einfaches Anführungszeichen enthalten soll, trennen Sie sie durch doppelte Anführungszeichen und umgekehrt:
>>>
>>> print("This string contains a single quote (') character.")
This string contains a single quote (') character.
>>> print('This string contains a double quote (") character.')
This string contains a double quote (") character.
Escape-Sequenzen in Strings
Manchmal möchten Sie, dass Python ein Zeichen oder eine Zeichenfolge innerhalb einer Zeichenfolge anders interpretiert. Dies kann auf zwei Arten geschehen:
-
Möglicherweise möchten Sie die spezielle Interpretation unterdrücken, dass bestimmte Zeichen normalerweise innerhalb einer Zeichenfolge angegeben werden.
-
Möglicherweise möchten Sie Zeichen in einer Zeichenfolge, die normalerweise wörtlich genommen werden, speziell interpretieren.
Sie können dies mit einem Backslash-Zeichen (\
) erreichen. Ein Backslash-Zeichen in einer Zeichenfolge gibt an, dass ein oder mehrere darauf folgende Zeichen speziell behandelt werden sollten. (Dies wird als Escape-Sequenz bezeichnet, da der Backslash bewirkt, dass die nachfolgende Zeichensequenz ihre übliche Bedeutung "maskiert".)
Mal sehen, wie das funktioniert.
Unterdrückung der Bedeutung von Sonderzeichen
Sie haben bereits die Probleme gesehen, auf die Sie stoßen können, wenn Sie versuchen, Anführungszeichen in eine Zeichenfolge aufzunehmen. Wenn eine Zeichenfolge durch einfache Anführungszeichen getrennt ist, können Sie kein einfaches Anführungszeichen als Teil der Zeichenfolge angeben, da für diese Zeichenfolge das einfache Anführungszeichen eine besondere Bedeutung hat - es beendet die Zeichenfolge:
>>>
>>> print('This string contains a single quote (') character.')
SyntaxError: invalid syntax
Wenn Sie einen Backslash vor dem Anführungszeichen in einer Zeichenfolge angeben, wird dieser "ausgeblendet" und Python unterdrückt seine übliche spezielle Bedeutung. Es wird dann einfach als wörtliches einfaches Anführungszeichen interpretiert:
>>>
>>> print('This string contains a single quote (\') character.')
This string contains a single quote (') character.
Das gleiche funktioniert auch in einer Zeichenfolge, die durch doppelte Anführungszeichen begrenzt ist:
>>>
>>> print("This string contains a double quote (\") character.")
This string contains a double quote (") character.
Das Folgende ist eine Tabelle von Escape-Sequenzen, die Python veranlassen, die übliche spezielle Interpretation eines Zeichens in einer Zeichenfolge zu unterdrücken:
Escape Sequenz |
Übliche Interpretation von Zeichen nach Backslash |
"Entkommene" Interpretation |
---|---|---|
|
Beendet die Zeichenfolge mit einem einfachen Anführungszeichen |
Buchstäbliches einfaches Anführungszeichen ( |
|
Beendet die Zeichenfolge mit einem doppelten Anführungszeichen |
Buchstäbliches doppeltes Anführungszeichen ( |
|
Beendet die Eingabezeile |
Newline wird ignoriert |
|
Führt die Escape-Sequenz ein |
Buchstäblicher Backslash ( |
Normalerweise beendet ein Zeilenumbruch die Zeileneingabe. Wenn Sie also[.kbd .key-enter]#Enter # in der Mitte eines Strings drücken, denkt Python, dass es unvollständig ist:
>>>
>>> print('a
SyntaxError: EOL while scanning string literal
Um eine Zeichenfolge über mehrere Zeilen aufzuteilen, fügen Sie vor jeder neuen Zeile einen Backslash ein. Die neuen Zeilen werden ignoriert:
>>>
>>> print('a\
... b\
... c')
abc
Um einen wörtlichen Backslash in eine Zeichenfolge aufzunehmen, maskieren Sie ihn mit einem Backslash:
>>>
>>> print('foo\\bar')
foo\bar
Zeichen mit besonderer Bedeutung versehen
Angenommen, Sie müssen eine Zeichenfolge erstellen, die ein Tabulatorzeichen enthält. In einigen Texteditoren können Sie möglicherweise ein Tabulatorzeichen direkt in Ihren Code einfügen. Viele Programmierer halten diese schlechte Praxis jedoch aus mehreren Gründen für:
-
Der Computer kann zwischen einem Tabulatorzeichen und einer Folge von Leerzeichen unterscheiden, dies ist jedoch nicht möglich. Für einen Menschen, der den Code liest, sind Tabulator- und Leerzeichen visuell nicht unterscheidbar.
-
Einige Texteditoren sind so konfiguriert, dass Tabulatorzeichen automatisch entfernt werden, indem sie auf die entsprechende Anzahl von Leerzeichen erweitert werden.
-
Einige Python REPL-Umgebungen fügen keine Registerkarten in den Code ein.
In Python (und fast allen anderen gängigen Computersprachen) kann ein Tabulatorzeichen durch die Escape-Sequenz
angegeben werden:
>>>
>>> print('foo\tbar')
foo bar
Die Escape-Sequenz
bewirkt, dass das Zeichent
seine übliche Bedeutung verliert, die eines wörtlichent
. Stattdessen wird die Kombination als Tabulatorzeichen interpretiert.
Hier ist eine Liste von Escape-Sequenzen, die bewirken, dass Python eine besondere Bedeutung anwendet, anstatt sie wörtlich zu interpretieren:
Fluchtabfolge | "Entkommene" Interpretation |
---|---|
|
ASCII Bell ( |
|
ASCII-Rücktaste ( |
|
ASCII Formfeed ( |
|
ASCII-Zeilenvorschubzeichen ( |
|
Zeichen aus der Unicode-Datenbank mit angegebenen |
|
ASCII-Wagenrücklaufzeichen ( |
|
ASCII Horizontal Tab ( |
|
Unicode-Zeichen mit 16-Bit-Hex-Wert |
|
Unicode-Zeichen mit 32-Bit-Hex-Wert |
|
ASCII Vertical Tab ( |
|
Zeichen mit Oktalwert |
|
Zeichen mit Hex-Wert |
Beispiele:
>>>
>>> print("a\tb")
a b
>>> print("a\141\x61")
aaa
>>> print("a\nb")
a
b
>>> print('\u2192 \N{rightwards arrow}')
→ →
Diese Art der Escape-Sequenz wird normalerweise zum Einfügen von Zeichen verwendet, die nicht ohne weiteres über die Tastatur generiert werden oder nicht leicht lesbar oder druckbar sind.
Rohe Saiten
Vor einem Raw-String-Literal stehtr
oderR
, was angibt, dass Escape-Sequenzen in der zugehörigen String nicht übersetzt werden. Das Backslash-Zeichen bleibt in der Zeichenfolge:
>>>
>>> print('foo\nbar')
foo
bar
>>> print(r'foo\nbar')
foo\nbar
>>> print('foo\\bar')
foo\bar
>>> print(R'foo\\bar')
foo\\bar
Dreifach zitierte Zeichenfolgen
Es gibt noch eine andere Möglichkeit, Zeichenfolgen in Python abzugrenzen. Zeichenfolgen mit dreifachen Anführungszeichen werden durch übereinstimmende Gruppen von drei einfachen Anführungszeichen oder drei doppelten Anführungszeichen begrenzt. Escape-Sequenzen funktionieren immer noch in Zeichenfolgen mit dreifachen Anführungszeichen, aber einfache Anführungszeichen, doppelte Anführungszeichen und Zeilenumbrüche können eingefügt werden, ohne dass sie maskiert werden. Dies bietet eine bequeme Möglichkeit, eine Zeichenfolge mit einfachen und doppelten Anführungszeichen zu erstellen:
>>>
>>> print('''This string has a single (') and a double (") quote.''')
This string has a single (') and a double (") quote.
Da Zeilenumbrüche eingefügt werden können, ohne dass sie ausgeblendet werden, können auch mehrzeilige Zeichenfolgen verwendet werden:
>>>
>>> print("""This is a
string that spans
across several lines""")
This is a
string that spans
across several lines
Im kommenden Tutorial zur Python-Programmstruktur werden Sie sehen, wie Zeichenfolgen in dreifachen Anführungszeichen verwendet werden können, um Python-Code einen erklärenden Kommentar hinzuzufügen.
Boolescher Typ, Boolescher Kontext und „Wahrhaftigkeit“
Python 3 bietet einen booleschen Datentyp. Objekte vom Typ Boolean können einen von zwei Werten haben,True
oderFalse
:
>>>
>>> type(True)
>>> type(False)
Wie Sie in den kommenden Tutorials sehen werden, werden Ausdrücke in Python häufig im booleschen Kontext ausgewertet, dh sie werden so interpretiert, dass sie Wahrheit oder Falschheit darstellen. Ein Wert, der im booleschen Kontext wahr ist, wird manchmal als "wahr" bezeichnet, und ein Wert, der im booleschen Kontext falsch ist, wird als "falsch" bezeichnet. (Möglicherweise sehen Sie auch "Falsch" mit der Schreibweise "Falsey".)
Die „Wahrhaftigkeit“ eines Objekts vom Booleschen Typ ist selbstverständlich: Boolesche Objekte, die gleichTrue
ind, sind wahr (wahr), und solche, die gleichFalse
ind, sind falsch (falsch). Nicht-Boolesche Objekte können jedoch auch im Booleschen Kontext ausgewertet und als wahr oder falsch bestimmt werden.
Weitere Informationen zur Auswertung von Objekten im booleschen Kontext finden Sie im nächsten Lernprogramm zu Operatoren und Ausdrücken in Python, wenn Sie auf logische Operatoren stoßen.
Eingebaute Funktionen
Der Python-Interpreter unterstützt viele integrierte Funktionen: Achtundsechzig ab Python 3.6. Sie werden viele davon in den folgenden Diskussionen behandeln, da sie im Kontext auftauchen.
Im Moment folgt eine kurze Übersicht, um ein Gefühl dafür zu geben, was verfügbar ist. Weitere Informationen finden Sie inPython documentation on built-in functions. Viele der folgenden Beschreibungen beziehen sich auf Themen und Konzepte, die in zukünftigen Tutorials behandelt werden.
Math
Funktion | Beschreibung |
---|---|
|
Gibt den absoluten Wert einer Zahl zurück |
|
Gibt den Quotienten und den Rest der Ganzzahldivision zurück |
|
Gibt das größte der angegebenen Argumente oder Elemente in einer Iterable zurück |
|
Gibt das kleinste der angegebenen Argumente oder Elemente in einer Iterable zurück |
|
Erhöht eine Zahl zu einer Potenz |
|
Rundet einen Gleitkommawert |
|
Summiert die Elemente eines iterable |
Typkonvertierung
Funktion | Beschreibung |
---|---|
|
Gibt eine Zeichenfolge zurück, die eine druckbare Darstellung eines Objekts enthält |
|
Konvertiert eine Ganzzahl in eine Binärzeichenfolge |
|
Konvertiert ein Argument in einen Booleschen Wert |
|
Gibt die Zeichenfolgendarstellung des durch das Integer-Argument angegebenen Zeichens zurück |
|
Gibt eine komplexe Zahl zurück, die aus Argumenten aufgebaut ist |
|
Gibt ein Gleitkommaobjekt zurück, das aus einer Zahl oder einer Zeichenfolge erstellt wurde |
|
Konvertiert eine Ganzzahl in eine hexadezimale Zeichenfolge |
|
Gibt ein ganzzahliges Objekt zurück, das aus einer Zahl oder einer Zeichenfolge erstellt wurde |
|
Konvertiert eine Ganzzahl in eine Oktalzeichenfolge |
|
Gibt eine ganzzahlige Darstellung eines Zeichens zurück |
|
Gibt eine Zeichenfolge zurück, die eine druckbare Darstellung eines Objekts enthält |
|
Gibt eine Zeichenfolgenversion eines Objekts zurück |
|
Gibt den Typ eines Objekts zurück oder erstellt ein neues Typobjekt |
Iterables und Iteratoren
Funktion | Beschreibung |
---|---|
|
Gibt |
|
Gibt |
|
Gibt eine Liste von Tupeln zurück, die Indizes und Werte aus einer Iterable enthalten |
|
Filtert Elemente aus einer iterierbaren Datei |
|
Gibt ein Iteratorobjekt zurück |
|
Gibt die Länge eines Objekts zurück |
|
Wendet eine Funktion auf jedes Element einer Iterable an |
|
Ruft das nächste Element von einem Iterator ab |
|
Erzeugt einen Bereich von Ganzzahlwerten |
|
Gibt einen umgekehrten Iterator zurück |
|
Gibt das Objekt |
|
Gibt eine sortierte Liste von einer iterierbaren zurück |
|
Erstellt einen Iterator, der Elemente aus iterablen Elementen aggregiert |
Zusammengesetzter Datentyp
Funktion | Beschreibung |
---|---|
|
Erstellt ein Objekt der Klasse |
|
Erstellt ein |
|
Erstellt ein |
|
Erstellt ein |
|
Konstruiert ein |
|
Gibt ein neues featureless Objekt zurück |
|
Erstellt ein |
|
Erstellt ein |
Klassen, Attribute und Vererbung
Funktion | Beschreibung |
---|---|
|
Gibt eine Klassenmethode für eine Funktion zurück |
|
Löscht ein Attribut aus einem Objekt |
|
Gibt den Wert eines benannten Attributs eines Objekts zurück |
|
Gibt |
|
Bestimmt, ob ein Objekt eine Instanz einer bestimmten Klasse ist |
|
Bestimmt, ob eine Klasse eine Unterklasse einer bestimmten Klasse ist |
|
Gibt einen Eigenschaftswert einer Klasse zurück |
|
Legt den Wert eines benannten Attributs eines Objekts fest |
|
Gibt ein Proxy-Objekt zurück, das Methodenaufrufe an eine übergeordnete oder Geschwisterklasse delegiert |
Input/Output
Funktion | Beschreibung |
---|---|
|
Konvertiert einen Wert in eine formatierte Darstellung |
|
Liest Eingaben von der Konsole |
|
Öffnet eine Datei und gibt ein Dateiobjekt zurück |
|
Druckt in einen Textstrom oder auf die Konsole |
Variablen, Referenzen und Umfang
Funktion | Beschreibung |
---|---|
|
Gibt eine Liste von Namen im aktuellen lokalen Bereich oder eine Liste von Objektattributen zurück |
|
Gibt ein Wörterbuch zurück, das die aktuelle globale Symboltabelle darstellt |
|
Gibt die Identität eines Objekts zurück |
|
Aktualisiert und gibt ein Wörterbuch zurück, das die aktuelle lokale Symboltabelle darstellt |
|
Gibt das Attribut |
Sonstiges
Funktion | Beschreibung |
---|---|
|
Gibt |
|
Kompiliert die Quelle in einen Code oder ein AST-Objekt |
|
Wertet einen Python-Ausdruck aus |
|
Implementiert die dynamische Ausführung von Python-Code |
|
Gibt den Hashwert eines Objekts zurück |
|
Ruft das integrierte Hilfesystem auf |
|
Gibt ein Speicheransichtsobjekt zurück |
|
Gibt eine statische Methode für eine Funktion zurück |
|
Wird durch die Anweisung |
Fazit
In diesem Tutorial haben Sie die integrierten Python-Funktionendata types undfunctionskennengelernt.
Die bisher gegebenen Beispiele haben alle manipuliert und nur konstante Werte angezeigt. In den meisten Programmen möchten Sie normalerweise Objekte erstellen, deren Wert sich während der Ausführung des Programms ändert.
Fahren Sie mit dem nächsten Tutorial fort, um mehr über Pythonvariables. zu erfahren
__ Take the Quiz: Testen Sie Ihr Wissen mit unserem interaktiven Quiz „Grundlegende Datentypen in Python“. Nach Abschluss erhalten Sie eine Punktzahl, mit der Sie Ihren Lernfortschritt im Laufe der Zeit verfolgen können: