Eingebaute Datentypen von Python (C) 2016-2025 T.Birnthaler OSTC GmbH
================================
Python stellt eingebaute STANDARD-DATENTYPEN bereit, die von vornherein nach
dem Start des Python-Interpreters verfügbar sind und typische Einsatzfälle
abdecken. Zusätzlich stellt es weitere Datentypen über die STANDARD-BIBLIOTHEK
bereit, dazu ist aber vorher ein passendes Modul zu laden (z.B. "array", "time",
"datetime", "calendar", "decimal", "fractions", "collections", "enum").
Doku --> docs.python.org/3/library/stdtypes.html
--> docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex
--> docs.python.org/3/library/stdtypes.html#boolean-type-bool
--> docs.python.org/3/library/stdtypes.html#iterator-types
--> docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range
--> docs.python.org/3/library/stdtypes.html#text-sequence-type-str
--> docs.python.org/3/library/stdtypes.html#binary-sequence-types-bytes-bytearray-memoryview
--> docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
--> docs.python.org/3/library/stdtypes.html#mapping-types-dict
--> docs.python.org/3/library/stdtypes.html#context-manager-types
--> docs.python.org/3/library/stdtypes.html#type-annotation-types-generic-alias-union
--> docs.python.org/3/library/stdtypes.html#other-built-in-types
--> docs.python.org/3/library/stdtypes.html#special-attributes
--> docs.python.org/3/library/stdtypes.html#integer-string-conversion-length-limitation
+-----------+----------------+-------------------------------------------------+
| DATENTYP | EIGENSCHAFTEN | SYNTAX UND WERTE(BEREICH) |
+-----------+----------------+-------------------------------------------------+
| NoneType | i 1 | None (un-bekannt/definiert/gültig/möglich) |
| bool | i 1 Boolean | True/False (Wert 1/0 bei Rechnung) |
| int | i 1 Integer | 1234 -5 0 (Ganze Zahl, beliebig groß!) |
| float | i 1 Float | 1.0 1e2 1E-2 (64-Bit Fließkommazahl, IEEE-754)|
| complex | i 1 2xFloat | (1+2j) (0+0j) (Real+Imaginärteil: 2x float) |
+-----------+----------------+-------------------------------------------------+
| str | i Seq UTF8 | "abc" 'abc' """abc""" '''abc''' "" |
| tuple | i Seq Obj | ( OBJ1, OBJ2, ... ) (OBJ1,) () |
| list | m Seq Obj | [ OBJ1, OBJ2, ... ] [] |
+-----------+----------------+-------------------------------------------------+
| dict | m Dict Imu:Obj | { KEY1:OBJ1, KEY2:OBJ2, ... } {} |
| set | m Set Imu | { KEY1, KEY2, ... } set({}) |
+-----------+----------------+-------------------------------------------------+
| bytearray | m Seq Byte | bytearray(b"AF0310FF3404") |
| bytes | i Seq Byte | b"AF0310FF3404" |
| frozenset | i Set Imu | frozenset({ KEY1, KEY2, ... }) |
+-----------+----------------+-------------------------------------------------+
| Klasse | m Attr Scope | class CLASSNAME: ... |
| Objekt | m Attr | OBJNAME = CLASSNAME(CLASS,...) |
| Funktion | i Attr Scope | def FUNCNAME(PARAM,...): ... |
| Funktion | i Attr Scope | lambda PARAM,...: EXPRESSION |
| Modul | m Attr Scope | import MODULNAME (Bezeichner ohne Ext. ".py"!) |
+-----------+----------------+-------------------------------------------------+
| Datentyp | | NoneType bool int float complex str tuple |
| | | list dict set bytearray bytes frozenset ... |
+-----------+----------------+-------------------------------------------------+
Legende:
Attr = Attribut (OBJ.ATTR = WERT für beliebige Attribute ATTR möglich)
Byte = Byte (Byte im Bereich 0..255 als Element)
Dict = Dictionary (ungeordnete Key+Value-Paare, Key unique + im-mutable)
Seq = Sequenz (geordnete Folge von Werten = indiziert von 0..n-1)
Set = Set (ungeordnete unique + im-mutable Keys, "degeneriertes" Dict)
None = NoneType (entspricht "NULL" in SQL = un-definiert/bekannt/gültig)
1 = EIN Wert (Skalar, IMMER im-mutable)
i = im-mutable ("read-only", frozen, static, const, Wert NICHT änderbar)
m = mutable ("read-write", Wert änderbar)
Obj = Object (beliebiges Python-Objekt als Element)
Imu = Im-mutable (beliebiges im-mutable Python-Objekt als Key/Element)
UTF8 = Character (Zeichen in UTF-8 Codierung als Element)
Scope = Name Scope (Lokaler Namensraum)
Begriffe:
Zahl = bool + int + float + complex (in Rechenausdruck verwendbar)
Collection = Seq + Dict + Set + ... (Sammlung beliebig vieler Werte, auch leer)
Container = Analog
Float = 64 Bit Fließkommazahl (IEEE 754 Standard)
Bezeichner = 1. Zeichen aus "A-Za-z_", folgende Zeichen aus "A-Za-z_0-9"
Objekt = Speicher mit Wert + Datentyp + Referenzzähler + Id (Adresse)
Referenz = Zeiger auf Objekt (nur Referenzen zugewiesen/weitergereicht)
Referenzzähler erreicht 0 --> Objekt wird freigegeben (Speicher)
Variable = Enthält Referenz auf Objekt (Name per Referenz an Obj "gebunden")
del VAR --> Name VAR weg + Referenzzähler dekrementiert
VAR = OBJ1 --> Objekt OBJ1 erzeugt, Referenzzähler auf 1,
Referenz darauf in VAR
VAR2 = VAR --> Referenz auf OBJ1 nach VAR2 kopiert,
Referenzzähler auf 2
VAR = OBJ2 --> Objekt OBJ2 erzeugt, Referenzzähler auf 1,
Referenz darauf in VAR,
Referenzzahler von OBJ1 dekrementiert
COW = Copy on Write (bei Zuweisung)
Doppelt vorhandene Datentypen (mutable und im-mutable):
+-----------+------------+---------------------------------------------------+
| list | mutable | Array |
| tuple | im-mutable | Array/Record |
+-----------+------------+---------------------------------------------------+
| set | mutable | Menge |
| frozenset | im-mutable | Menge |
+-----------+------------+---------------------------------------------------+
| bytearray | mutable | Byte-Strom |
| bytes | im-mutable | Byte-Strom |
+-----------+------------+---------------------------------------------------+
Datentypen von Python 2 (in Python 3 nicht mehr vorhanden oder geändert):
+----------+---------------+-------------------------------------------------+
| DATENTYP | EIGENSCHAFTEN | SYNTAX UND WERTE(BEREICH) |
+----------+---------------+-------------------------------------------------+
| int | i 1 | -2147483648 .. +2147483647 (32-Bit Ganzzahl) |
| long | i 1 | -9223372036854775808..+9223372036854775807 (64) |
| str | i Seq Byte | "ZEICHENKETTE" 'abc' "" '' |
| unicode | i Seq UTF8 | u"ZEICHENKETTE" u'abc' u"" u'' |
+----------+---------------+-------------------------------------------------+