Operatoren sind nur Symbole für Aktionen
Ein Operator ist ein Symbol (oder ein kurzes Schlüsselwort), das Python sagt, etwas mit einem oder zwei Werten zu tun — sie addieren, vergleichen, prüfen, ob einer den anderen enthält. Aus der Grundrechenart kennst du ein paar; Python hat noch eine Handvoll mehr für Logik, Zugehörigkeit und Identität.
Wir gehen die Hauptkategorien nacheinander durch.
Arithmetische Operatoren
Die Standard-Mathematikoperatoren plus ein paar Python-Spezialitäten:
Zwei Punkte aus dieser Liste vergisst man leicht:
/liefert auch bei zwei Ganzzahlen einen Float.10 / 2ergibt5.0. Für Ganzzahldivision nimm//.%ist Modulo.n % 2 == 0ist der sauberste Test, obngerade ist.
Python folgt der üblichen mathematischen Vorrangregel: ** bindet stärker als * und /, die wiederum stärker binden als + und -. Klammern überschreiben alles:
Setz Klammern großzügig, wenn Zweifel bestehen. Sie kosten nichts und machen die Absicht offensichtlich.
Vergleichsoperatoren
Sechs Vergleiche, jeder gibt einen Boolean zurück:
Python lässt dich Vergleiche verketten, was ungewöhnlich und nützlich ist:
Das liest sich als „age ist mindestens 18 und kleiner als 65“. Intern entspricht es 18 <= age and age < 65, liest sich aber näher an der Mathematik.
Logische Operatoren
Als englische Wörter statt als Symbole geschrieben:
Zwei Details lohnen sich zu kennen:
Kurzschluss-Auswertung. and stoppt beim ersten falsy Wert; or stoppt beim ersten truthy Wert. Die rechte Seite wird gar nicht ausgewertet, wenn die linke schon entscheidet. So kannst du dich gegen Fehler absichern:
and/or liefern den Wert, nicht immer True/False. Sie geben den Operand zurück, der das Ergebnis entschieden hat:
In echtem Code siehst du name = user_input or "anonymous" — das ist ein Default-Wert-Muster, das auf diesem Verhalten aufbaut.
Zuweisungsoperatoren
= weist zu. Die zusammengesetzten Formen kombinieren eine Operation mit einer Zuweisung:
Die zusammengesetzten Formen funktionieren auch für Strings (s += "more") und Listen (lst += [4, 5]). Sie sind nicht schneller als die volle Form; sie sind nur kürzer.
Zugehörigkeit: in und not in
Testet, ob ein Wert in einem Container vorkommt:
in funktioniert mit jeder Iterable — Listen, Tupeln, Sets, Strings, Dicts und mehr. Bei großen Suchen ist in auf einer Liste O(n); in auf einem Set oder Dict ist O(1). Das zählt, sobald du oft auf Zugehörigkeit prüfst.
Identität: is und is not
is prüft, ob zwei Variablen auf dasselbe Objekt im Speicher zeigen, nicht nur auf gleiche Werte:
Fast immer willst du ==. Der eine Ort, an dem is wirklich glänzt, ist die Prüfung gegen None, True und False:
Die Community-Konvention ist klar: is None, nicht == None. Dasselbe für is True (obwohl du das selten brauchst).
Bitweise Operatoren (beim ersten Lesen überspringen)
Python hat auch bitweise Operatoren — &, |, ^, ~, <<, >> — zum Manipulieren einzelner Bits einer Ganzzahl. Sie sind in Kryptografie, Low-Level-Netzwerkcode und bestimmten Algorithmen nützlich. Beim ersten Durchgang kannst du sie gefahrlos ignorieren.
Der Walross-Operator (:=)
Python 3.8 hat := hinzugefügt, das in einem Ausdruck zuweist und einen Wert zurückgibt. Nützlich in Bedingungen, bei denen du ein Ergebnis sowohl erfassen als auch prüfen willst:
Ohne den Walross müsstest du len(numbers) zweimal aufrufen oder eine zusätzliche Zeile schreiben. Er ist nicht essenziell; setz ihn ein, wo er Wiederholung spart.
Spickzettel zur Operatorrangfolge
Von der engsten zur losesten Bindung für die Operatoren, die du tatsächlich nutzt:
**— Exponent*,/,//,%— Multiplikation und Division+,-— Addition und Subtraktion<,<=,>,>=,==,!=— Vergleichenotandor
Im Zweifel: Klammern setzen. Klarheit schlägt Cleverness.
Weiter zum Kontrollfluss
Mit Operatoren im Gepäck kannst du Bedingungen schreiben. Die nächste Seite ist if/elif/else — die Konstruktion, die dein Programm einen Weg oder einen anderen gehen lässt, je nachdem, was die Operatoren sagen.
Häufig gestellte Fragen
Welche Hauptarten von Operatoren gibt es in Python?
Arithmetik (+, -, *, /, //, %, **), Vergleich (==, !=, <, <=, >, >=), Logik (and, or, not), Zuweisung (=, +=, -=, …), Zugehörigkeit (in, not in) und Identität (is, is not).
Was ist der Unterschied zwischen == und is in Python?
== prüft, ob zwei Werte gleich sind. is prüft, ob zwei Variablen auf exakt dasselbe Objekt im Speicher zeigen. Für None, True und False nimm is — das sind Singletons. Für alles andere ist fast immer == richtig.
Was macht der Operator % in Python?
Bei Zahlen ist % der Modulo-Operator — er liefert den Rest einer Division. 17 % 5 ist 2. Bei Strings ist es eine ältere Formatierungs-Syntax (wie "hello %s" % name), aber f-Strings haben das weitgehend ersetzt.