info@a-coding-project.de

Python: Datentypen

Python besitzt eine dynamische Typenbindung, das heißt der Variablentyp muss nicht extra deklariert werden und wird implizit durch die Zuweisung festgelegt. Der einer Variablen kann sich auch ändern, auch wenn das meist nicht als besonders sauberer Programmierstil betrachtet wird.

Zahlen

Python unterstützt an einfachen Datentypen Ganzzahlen (auch beliebiger Größe), Realzahlen und komplexe Zahlen.
Die meisten der folgenden Beispiele sind die Ausgabe einer interaktiven Python-Sitzung, >>> ist der Interpreter-Prompt, die Ausgabe erscheint ohne >>> in der nächsten Zeile, falls vorhanden. Beispiel (** ist der Potenzierungs-Operator):

>>> 3 * 3
6
>>> 300 ** 10
5904900000000000000000000L

Ganze, reelle und komplexe Zahlen können gemischt werden, wobei das Suffix j den Imaginärteil kennzeichnet. Alternativ kann die eingebauten Funktion complex(real,imag) benutzt werden:

>>> (5 + 30j) / 5j
(6-1j)
>>> complex(5, 30) / complex(0, 5)
(6-1j)

Konvertierungen erledigen die eingebauten Funktionen int(), float() und long():

>>> int(5.5)
5
>>> long(3e+30)
2999999999999999778178897805312L
>>> float(3000000000000000000000000000000L)
2.9999999999999998e+30

Im obigen Beispiel sieht man recht deutlich die Ungenauigkeit der Computerrepräsentation von Gleitkommazahlen.

Strings

Python kann natürlich auch mit Strings umgehen, die entweder in einfache oder doppelte Hochkomma gesetzt werden können. Der Backslash () dient wie in C als Escape-Zeichen, also zum Maskieren von Sonderzeichen:

>>> 'Doppeltes Hochkomma: ", einfaches: ''
"Doppeltes Hochkomma: ", einfaches: '"

Die Operatoren + und * sind auch für Strings zulässig:

>>> 'ab' + 'cdef'
'abcdef'
>>> 'ab' * 5
'ababababab'

Indizes

Strings können indiziert werden, wobei Python keinen eigenen Zeichen-Datentyp definiert; ein Zeichen ist einfach ein String mit Länge eins. Die Indizes beginnen wie in C mit 0. Substrings können in Slice-Notation angegeben werden: zwei Indizes, durch einen Doppelpunkt getrennt. Beispiel:

>>> word = 'Hallo'
>>> word[0]
'H'
>>> word[0:2]
'Ha'
>>> word[2:4]
'll'

Die Indizes können bei Slices weggelassen werden - gleichbedeutend mit 0 oder der Stringlänge. Auch negative Indizes sind erlaubt - sie entsprechen der Stringlänge abzüglich des Index-Betrages. Beispiel:

>>> word = 'Hallo'
>>> word[-1]
'o'
>>> word[:2]
'Ha'
>>> word[2:]
'llo'

Strings ersetzen

Strings können in Python nicht direkt verändert werden; Zuweisungen an einzelne Elemente oder Substrings sind also nicht möglich. Man erhält entsprechend eine Fehlermeldung:

>>> word = 'Help'
>>> word[0] = 'h'
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: object doesn't support item assignment

Im Zusammenhang mit Strings ist in Python der recht mächtige %-Operator interessant; er entspricht etwa der Funktion sprintf() in C:

>>> number = 3.5
>>> milliseconds = 1.4
>>> "Die Berechnung ergab nach %s ms: %s" % (milliseconds, number)
'Die Berechnung ergab nach 1.4 ms: 3.5'

Anstatt eines Tupels kann auch ein Dictionary verwendet werden um von der Reihenfolge unabhängig zu bleiben:

>>> 'Foo: %(foo)s, Bar: %(bar)s' % {'foo' : 1.3, 'bar' : 'abc'}
'Foo: 1.3, Bar: abc'

Listen

Eine Liste wird als Komma-separierte und von eckigen Klammer eingeschlossene Liste ihrer Elemente notiert. Die Elemente müssen nicht vom gleichen Typ sein. Listen verhalten sich ähnlich wie Strings:

>>> list1 = ['A', 'little', 'list']
>>> list1[0]
'A'
>>> list2 = [1, 2, 3]
>>> list3 = list1 + list2
['A', 'little', 'list', 1, 2, 3]
>>> list3[2:4]
[ 'little', 'list', 1, 2]

Listen sind im Gegensatz zu String veränderbar, und haben auch dementsprechende Methoden:

>>> list = [1, 2, 3]
>>> list[2] += 3
>>> list.append('a')
[1, 2, 5, 'a']

Die Zuweisung an Teilbereiche ist ebenso möglich, und das kann sogar die Länge der Liste verändern.

>>> list = [1, 2, 3]
>>> list[:0] = [-2, -1, 0] # Am Anfang einfuegen
>>> list
[-2, -1, 0, 1, 2, 3]

Dictionaries

Dictionaries werden durch Zuweisung ihrer Elemente innerhalb von geschweiften Klammern definiert. Ein Element besteht jeweils aus dem Namensstring gefolgt von einem Doppelpunkt und dem, dem Namen zugeordneten Wert. Mehrere Elemente werden durch Kommata voneinander getrennt. Der Wert eines Elements, kann ähnlich wie bei Listen über den in eckigen Klammern stehenden Namen ausgefragt werden. Beispiel:

>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['jack']
4098

Neue Elemente können durch einfache Zuweisung des neuen Namens und Wertes angefügt werden. Beispiel:

>>> tel['guido'] = 4127
>>> tel
{'sape': 4139, 'guido': 4127, 'jack': 4098}

Das Löschen von Elementen geschieht via del-Aufruf. Beispiel:

>>> del tel['sape']
>>> tel['irv'] = 4127
>>> tel
{'guido': 4127, 'irv': 4127, 'jack': 4098}

Die einzelnen Namen können zudem mit Hilfe der keys-Funktion abgefragt werden, man erhält eine Liste. Beispiel:

>>> tel.keys()
['guido', 'irv', 'jack']

Weiterlesen: ⯈ Variablen und Operatoren

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant