Operatoren verknüpfen Werte. Du kennst die Rechenzeichen schon aus dem letzten Kapitel; hier kommt der vollständige Überblick.
Vergleichsoperatoren
Sie liefern immer True oder False:
| Operator | Bedeutung | Beispiel |
|---|---|---|
== | gleich | 5 == 5 → True |
!= | ungleich | 5 != 3 → True |
< | kleiner | 3 < 5 → True |
> | größer | 3 > 5 → False |
<= | kleiner oder gleich | 5 <= 5 → True |
>= | größer oder gleich | 4 >= 5 → False |
alter = 17
print(alter >= 18)
print(alter != 18)
print(10 < alter < 20) # verkettet: Python erlaubt das wie in der MathematikFalse True True
Logische Operatoren
Mit and, or und not verknüpfst du Bedingungen:
| Operator | Bedeutung |
|---|---|
a and b | wahr, wenn beide wahr sind |
a or b | wahr, wenn mindestens eine wahr ist |
not a | kehrt wahr und falsch um |
sonnig = True
warm = False
print(sonnig and warm)
print(sonnig or warm)
print(not warm)False True True
Python wertet kurz aus: Bei a and b wird b nur geprüft, wenn a wahr ist. Das nutzt man gern für Standardwerte:
name = ""
print(name or "Gast")
print(0 and "nie gesehen")Gast 0
Zuweisungsoperatoren
| Kurzform | Entspricht |
|---|---|
x += 3 | x = x + 3 |
x -= 3 | x = x - 3 |
x *= 3 | x = x * 3 |
x /= 3 | x = x / 3 |
x //= 3 | x = x // 3 |
x %= 3 | x = x % 3 |
x **= 3 | x = x ** 3 |
Identität und Zugehörigkeit
is/is notprüft, ob zwei Namen auf dasselbe Objekt zeigen (nicht nur gleichen Inhalt haben).in/not inprüft, ob etwas in einer Sammlung oder einem Text enthalten ist.
a = [1, 2]
b = [1, 2]
print(a == b) # gleicher Inhalt
print(a is b) # aber zwei verschiedene Objekte
print(3 in [1, 2, 3])
print("ell" in "Hallo")
print(None is None)True False True False True
Bit-Operatoren
Für Zahlen auf Bit-Ebene gibt es & (und), | (oder), ^ (exklusiv-oder), ~ (Umkehrung), << und >> (Verschieben). Du brauchst sie selten, zum Beispiel bei Flags oder Netzwerkmasken:
print(6 & 3) # 110 & 011 = 010
print(6 | 3) # 111
print(6 ^ 3) # 101
print(1 << 4) # 162 7 5 16
Rangfolge
Wie in der Mathematik gilt "Punkt vor Strich". Von stark nach schwach bindend:
| Rang | Operatoren |
|---|---|
| 1 | ** |
| 2 | +x, -x, ~x (Vorzeichen) |
| 3 | *, /, //, % |
| 4 | +, - |
| 5 | <<, >> |
| 6 | &, ^, | |
| 7 | Vergleiche, in, is |
| 8 | not |
| 9 | and |
| 10 | or |
print(2 + 3 * 4)
print((2 + 3) * 4)
print(2 ** 3 ** 2) # rechts zuerst: 2 ** 9
print(not True or True)14 20 512 True
Im Zweifel setzt du Klammern. Sie machen den Code auch für Menschen verständlicher.
Merke
- Vergleiche liefern
TrueoderFalse;==vergleicht,=weist zu and,or,notverknüpfen Bedingungen und werten kurz ausinprüft Enthaltensein,isprüft Objektidentität (is Nonefür None)- Kurzformen wie
+=sparen Schreibarbeit - Klammern machen die Rangfolge eindeutig
Aufgabe
Schreibe einen Ausdruck, der True ergibt, wenn eine Zahl z zwischen 10 und 20 (einschließlich) liegt und gerade ist.