W3docs

Einführung in Python-Operatoren

Alle Python-Operatortypen erklärt — Arithmetik, Vergleich, Zuweisung, Logik, Bitweise, Identität und Mitgliedschaft — mit Beispielen und Rangfolgeregeln.

Operatoren sind die Symbole und Schlüsselwörter, die Python mitteilen, welche Aktion an einem oder mehreren Werten ausgeführt werden soll. Jeder sinnvolle Python-Ausdruck — von x + 1 bis if age >= 18 — verwendet mindestens einen Operator. Python unterteilt seine Operatoren in sieben Kategorien: arithmetische, Vergleichs-, Zuweisungs-, logische, Identitäts-, Mitgliedschafts- und bitweise Operatoren. Dieses Kapitel erklärt jede Kategorie, zeigt, wann man sie verwendet, und weist auf häufige Fallstricke hin.

Arithmetische Operatoren

Arithmetische Operatoren führen mathematische Berechnungen durch. Python stellt sieben davon bereit:

OperatorNameBeispielErgebnis
+Addition17 + 522
-Subtraktion17 - 512
*Multiplikation17 * 585
/Division17 / 53.4
%Modulus (Rest)17 % 52
**Potenzierung2 ** 8256
//Ganzzahldivision17 // 53

Zwei Operatoren verdienen besondere Aufmerksamkeit:

  • / gibt in Python 3 immer einen float zurück, auch bei der Division zweier ganzer Zahlen (4 / 2 ergibt 2.0, nicht 2).
  • // (Ganzzahldivision) rundet das Ergebnis in Richtung negativer Unendlichkeit, nicht in Richtung null. Daher ist -7 // 2 gleich -4, nicht -3.
python— editable, runs on the server

Häufige Anwendung: gerade oder ungerade prüfen

Der Modulus-Operator (%) ist die Standardmethode zum Testen der Teilbarkeit:

number = 42
if number % 2 == 0:
    print("even")
else:
    print("odd")
# Output: even

Vergleichsoperatoren

Vergleichsoperatoren vergleichen zwei Werte und geben immer True oder False zurück. Sie werden in Bedingungen, while-Schleifen und überall dort verwendet, wo ein boolesches Ergebnis benötigt wird.

OperatorBedeutungBeispielErgebnis
==Gleich5 == 5True
!=Ungleich5 != 3True
>Größer als5 > 3True
<Kleiner als5 < 3False
>=Größer als oder gleich5 >= 5True
<=Kleiner als oder gleich5 <= 4False
python— editable, runs on the server

Vergleiche verketten

Python ermöglicht es, mehrere Vergleiche in einem Ausdruck zu verketten, was sich natürlicher liest als in den meisten anderen Sprachen:

x = 7
print(1 < x < 10)   # True  — equivalent to (1 < x) and (x < 10)
print(0 < x < 5)    # False

Fallstrick: == vs. =

= ist der Zuweisungsoperator; == prüft Gleichheit. Die Verwendung von = innerhalb einer Bedingung ist in Python ein SyntaxError (anders als in einigen anderen Sprachen, wo es stillschweigend zuweist).

Zuweisungsoperatoren

Zuweisungsoperatoren speichern Werte in Variablen. Die zusammengesetzten Formen (+=, -=, …) kombinieren eine arithmetische oder bitweise Operation mit einer Zuweisung und machen den Code kompakter.

OperatorEntsprichtBeispiel
=x = 10
+=x = x + nx += 3
-=x = x - nx -= 3
*=x = x * nx *= 3
/=x = x / nx /= 3
//=x = x // nx //= 3
%=x = x % nx %= 3
**=x = x ** nx **= 3
&=x = x & nx &= 0b1111
|=x = x | nx |= 0b1000
^=x = x ^ nx ^= 0b0101
<<=x = x << nx <<= 1
>>=x = x >> nx >>= 1
python— editable, runs on the server

Der Walrus-Operator := (Python 3.8+)

Der Walrus-Operator weist einen Wert innerhalb eines Ausdrucks zu. Er ist nützlich, wenn man ein Ergebnis sowohl auswerten als auch speichern möchte, ohne den Ausdruck zweimal schreiben zu müssen:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Without walrus: compute length twice
if len(numbers) > 5:
    print(f"Long list: {len(numbers)} items")

# With walrus: assign once, use in condition and body
if (n := len(numbers)) > 5:
    print(f"Long list: {n} items")
# Output: Long list: 10 items

Logische Operatoren

Logische Operatoren kombinieren oder invertieren boolesche Ausdrücke. Python verwendet englische Schlüsselwörter anstelle von Symbolen (&&, ||, !).

OperatorBedeutungBeispielErgebnis
andWahr, wenn beide Seiten wahr sindTrue and FalseFalse
orWahr, wenn mindestens eine Seite wahr istTrue or FalseTrue
notInvertiert den booleschen Wertnot TrueFalse
python— editable, runs on the server

Kurzschlussauswertung

Python wertet and und or träge (von links nach rechts) aus und hält an, sobald das Ergebnis feststeht:

  • False and <anything> — die rechte Seite wird nie ausgewertet.
  • True or <anything> — die rechte Seite wird nie ausgewertet.

Dies ist wichtig, wenn die rechte Seite einen Nebeneffekt hat oder einen Fehler auslösen könnte:

user_input = ""
name = user_input or "Anonymous"
print(name)   # Anonymous  (empty string is falsy, so "Anonymous" is returned)

Truthy- und Falsy-Werte

Logische Operatoren funktionieren mit jedem Wert, nicht nur mit True/False. Python behandelt 0, "", None, [], {} und () als falsy; alles andere ist truthy.

Siehe das Kapitel Python Data Types für eine vollständige Liste der falsy-Werte je Typ.

Identitätsoperatoren

Identitätsoperatoren prüfen, ob zwei Variablen auf dasselbe Objekt im Speicher zeigen, nicht nur ob sie gleiche Werte haben.

OperatorBedeutung
isTrue, wenn beide Variablen dasselbe Objekt referenzieren
is notTrue, wenn sie verschiedene Objekte referenzieren
python— editable, runs on the server

Wann is vs. == verwenden

Verwende is nur dann, wenn du bewusst die Objektidentität prüfen möchtest — am häufigsten beim Vergleich mit Singletons:

value = None
if value is None:       # correct idiom
    print("No value provided")

# Never do: if value == None — works but is considered bad style

Python speichert kleine ganzzahlige Werte (typischerweise -5 bis 256) und internierte Strings zwischen, sodass a is b für zwei getrennt erstellte kleine ganzzahlige Werte True zurückgeben kann. Verlasse dich bei ganzen Zahlen oder Strings niemals auf dieses Verhalten — verwende == für Wertgleichheit.

Mitgliedschaftsoperatoren

Mitgliedschaftsoperatoren prüfen, ob ein Wert in einer Sequenz (Liste, Tupel, string, set oder Dictionary) vorhanden ist.

OperatorBedeutung
inTrue, wenn der Wert in der Sequenz gefunden wird
not inTrue, wenn der Wert nicht gefunden wird
python— editable, runs on the server

Hinweis zur Performance

Bei Listen und Tupeln prüft in jedes Element der Reihe nach (O(n)). Bei Sets und Dictionary-Schlüsseln verwendet in eine Hashtabelle und läuft in konstanter Zeit (O(1)). Bevorzuge ein set, wenn du viele Mitgliedschaftsprüfungen an einer großen Sammlung durchführen musst.

Bitweise Operatoren

Bitweise Operatoren arbeiten auf der binären Darstellung von ganzen Zahlen und manipulieren einzelne Bits.

OperatorNameBeispielErgebnisHinweise
&AND5 & 31Bit ist 1 nur wenn beide Bits 1 sind
|OR5 | 37Bit ist 1, wenn eines der Bits 1 ist
^XOR5 ^ 36Bit ist 1, wenn die Bits verschieden sind
~NOT~5-6Invertiert alle Bits; Ergebnis ist -(n+1)
<<Linksshift5 << 110Verschiebt Bits nach links (Multiplikation mit 2)
>>Rechtsshift20 >> 25Verschiebt Bits nach rechts (Division durch 2)
python— editable, runs on the server

Warum bitweise Operatoren wichtig sind

Im alltäglichen Python-Code wirst du bitweise Operatoren nicht direkt verwenden, aber sie treten häufig auf in:

  • Flags und Berechtigungen — Bitmasks kombinieren, um mehrere Optionen in einer einzigen ganzen Zahl darzustellen.
  • Kryptographie und Hashing — XOR ist ein grundlegender Baustein.
  • Effiziente Mathematikn << 1 ist in leistungskritischen Schleifen schneller als n * 2.
  • Arbeit mit Binärprotokollen — Netzwerkpakete oder Datei-Header parsen.

Operatorrangfolge

Wenn ein Ausdruck mehrere Operatoren mischt, wertet Python sie in einer festen Reihenfolge aus (höchste Rangfolge zuerst):

PrioritätOperatoren
1 (höchste)**
2+x, -x, ~x (unär)
3*, /, //, %
4+, -
5<<, >>
6&
7^
8|
9==, !=, <, >, <=, >=, is, is not, in, not in
10not
11and
12 (niedrigste)or
# Multiplication before addition (standard math rules apply)
print(2 + 3 * 4)      # 14, not 20

# Use parentheses to override
print((2 + 3) * 4)    # 20

# ** is right-associative: 2 ** 3 ** 2 = 2 ** (3**2) = 2**9
print(2 ** 3 ** 2)    # 512, not 64

# Comparisons before logical operators
print(2 + 3 > 4 and 10 % 3 == 1)  # True and True → True

Im Zweifelsfall Klammern verwenden. Sie machen die Rangfolge explizit und verbessern die Lesbarkeit.

Zusammenfassung

KategorieOperatorenHauptverwendung
Arithmetisch+ - * / % ** //Mathematische Berechnungen
Vergleich== != > < >= <=Bedingungen, Filtern
Zuweisung= += -= *= /= //= %= **= &= |= ^= <<= >>=Variablen speichern und aktualisieren
Logischand or notBoolesche Bedingungen kombinieren
Identitätis is notSingleton-Prüfungen (z. B. is None)
Mitgliedschaftin not inSequenzen und Sets durchsuchen
Bitweise& | ^ ~ << >>Binäre Flags, Low-Level-Daten

Für verwandte Themen siehe Python Variables, Python If...Else und Python Data Types.

Übungen

Übung
Which of the following categories does Python operators fall into?
Which of the following categories does Python operators fall into?
Was this page helpful?