Boolesche Werte und Ausdrücke¶
In Python gibt es mehrere Möglichkeiten, boolesche Werte auszudrücken; die
boolesche Konstante False
, 0
, der Python-Typ None und
leere Werte (z.B. die leere Liste []
oder die leere
Zeichenkette ""
) werden alle als False
betrachtet. Die boolesche
Konstante True
und alles andere wird als True
betrachtet.
<
,<=
,==
,>
,>=
vergleicht Werte:
>>> x = 3 >>> y = 3.0 >>> z = [3, 4, 5] >>> x == y True
Ihr solltet jedoch nie berechnete Fließkommazahlen miteinander vergleichen:
>>> u = 0.6 * 7 >>> v = 0.7 * 6 >>> u == v False >>> u 4.2 >>> v 4.199999999999999
is
,is not
,in
,not in
überprüft die Identität:
>>> x is y False >>> x is not y True >>> x in z True >>> id(x) 4375911432 >>> id(y) 4367574480 >>> id(z[0]) 4375911432
Wenn
x
undz[0]
die gleiche ID im Speicher haben, bedeutet das, dass wir an zwei Stellen auf dasselbe Objekt verweisen.Der
is
-Operator wird meist bei Werten verwendet, die nur einmal im Speicher vorhanden sind, sog. Singleton-Objekte. So ist die Überprüfung auf None die häufigste Verwendung desis
-Operators.>>> x is None False >>> x is not None True
Auch der Python-Style-Guide in PEP 8 empfiehlt, dass ihr auf Identität mit None und nicht auf Werte überprüfen solltet, also niemals
x == None
, sondern stattdessen immerx is None
verwenden solltet.and
,not
,or
sind logische Operatoren, mit denen wir die oben genannten Überprüfungen verknüpfen können:
>>> x is y and x is z[0] False >>> x is y or x is z[0] True >>> x is y and not x is z[0] False >>> x is z[0] and not x is y True