Kapitel 4
Standard-Datentypen
88
falsch sein können, gehören zum Datentyp bool. Das ist neu seit der Python-Version 2.3. Frü-
her gab es bei Python keinen eigenen Datentyp für Wahrheitswerte. Denn alle Objekte kön-
nen (auch jetzt noch) gewissermaßen als Begleiterscheinung immer wahr oder falsch sein, je
nachdem welchen Wert sie haben.
Leere Sequenzen oder Dictionaries ohne ein einziges Element, das leere Objekt None,
Zahlen mit dem Wert null und unwahre logische Aussagen besitzen den Wahrheitswert
False.
Nicht leere Sequenzen oder Dictionaries, alle Zahlen ungleich null und wahre logische
Aussagen besitzen den Wahrheitswert
True.
Die Bezeichnung
bool erinnert an den englischen Mathematiker George Boole, der im Jahre
1854 erstmals eine mathematische Theorie logischer Formeln veröffentlichte, die heute als
boolesche Algebra bekannt ist.
Den Wahrheitswerten
True und False sind bei Python gleichzeitig die numerischen Werte
1 und 0 zugeordnet. Das heißt, man kann z.B. logische Ausdrücke addieren:
Wahrheitswerte spielen bei bedingten Anweisungen eine Rolle. Dazu kommen wir in
Kapitel 5.
4.6 Ganze Zahlen
Für die Darstellung beliebig langer ganzer Zahlen gibt es bei Python den Typ int. Die Syn-
tax für Literale, die ganze Zahlen darstellen, lautet:
>>> 12 > 11 # Ein Vergleich kann wahr oder falsch sein
True
>>> 2*3 == 6
True
>>> type(2*3 == 6)
<class 'bool'>
>>> True + True
2
>>> (2 > 1) + (200 > 100)
2
(1) integer ::= decimalinteger | octinteger |
hexinteger | bininteger
(2) decimalinteger ::= nonzerodigit digit* | "0"+
(3) nonzerodigit ::= "1"..."9"
(4) digit ::= "0"..."9"
(5) octinteger ::= "0" ("o" | "O") octdigit+
(6) hexinteger ::= "0" ("x" | "X") hexdigit+
(7) bininteger ::= "0" ("b" | "B") bindigit+
89
4.6
Ganze Zahlen
Diese Regeln beschreiben vollständig, wie Literale für ganze Zahlen aufgebaut sein müssen.
Andere Darstellungen für ganze Zahlen gibt es nicht.
Ganze Zahlen können unter Verwendung verschiedener Zahlensysteme dargestellt werden,
nämlich als Dezimalzahlen, Oktalzahlen, Hexadezimalzahlen oder Binärzahlen. Das ergibt
sich aus Regel 1 des obigen Grammatik-Ausschnitts. Am Aussehen des Literals erkennt der
Python-Interpreter, welches Zahlensystem zu Grunde liegt.
Eine Dezimalzahl ungleich null darf nicht mit einer führenden Null beginnen (Regel 2). Die
Ziffernfolge
09 liefert eine Fehlermeldung, 0 und 000 dagegen sind erlaubt.
Literale für Oktalzahlen bestehen aus den Ziffern
0 bis 7 und müssen mit der Ziffer 0 (nicht
zu verwechseln mit dem großen Buchstaben
O!) beginnen, gefolgt von einem kleinen o oder
großen O und mindestens einer Oktalziffer
0…7 (Regeln 5 und 8). Beispiele für Oktalzahlen
sind
0o123 und 0o071, nicht aber 0071 (zwei führende Nullen) oder 0o8 (8 ist keine Oktal-
ziffer).
Das Hexadezimalsystem verwendet 16 Ziffern, die durch die üblichen Dezimalziffern
0 bis 9
und die sechs ersten Buchstaben des Alphabets dargestellt werden (Regel 9). Dabei repräsen-
tiert
A den numerischen Wert 10, B den Wert 11 usw. und schließlich F den Wert 15. Bei
Python beginnen Hexadezimal-Literale mit dem Präfix
0x oder 0X, wobei das erste Zeichen
wiederum die Ziffer null (und nicht der Buchstabe
O) ist (Regel 6). Beispiele für Hexadezimal-
zahlen sind
0x10e3 oder 0XD423f2 oder 0x02345, nicht aber ox3F (Buchstabe o am Anfang).
Binärzahlen bestehen nur aus den Ziffern
0 und 1. Sie beginnen mit 0b oder 0B (Regel 7).
Danach muss mindestens eine Binärziffer folgen. Gültige Binärzahlen sind zum Beispiel
0b01 und 0B111.
Im interaktiven Modus einer Python-Shell kann man sich die Dezimalwerte von Oktal- und
Hexadezimalzahlen ausgeben lassen:
(8) octdigit ::= "0"..."7"
(9) hexdigit ::= digit | "a"..."f" | "A"..."F"
(10) bindigit ::= "0" | "1"
>>> 09
SyntaxError: invalid token
>>> 0
0
>>> a = 000
>>> a
0
>>> 0o10
8
>>> 0x10
16
>>> 0b10
2

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.