Menu

Python-Operatoren: Arithmetik, Vergleich, Logik, Zugehörigkeit und Identität

Eine komplette Tour durch Python-Operatoren — Arithmetik, Vergleich, Logik, Zuweisung, Zugehörigkeit und Identität — jeweils mit Beispielen.

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:

main.py
Output
Click Run to see the output here.

Zwei Punkte aus dieser Liste vergisst man leicht:

  • / liefert auch bei zwei Ganzzahlen einen Float. 10 / 2 ergibt 5.0. Für Ganzzahldivision nimm //.
  • % ist Modulo. n % 2 == 0 ist der sauberste Test, ob n gerade ist.

Python folgt der üblichen mathematischen Vorrangregel: ** bindet stärker als * und /, die wiederum stärker binden als + und -. Klammern überschreiben alles:

main.py
Output
Click Run to see the output here.

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:

main.py
Output
Click Run to see the output here.

Python lässt dich Vergleiche verketten, was ungewöhnlich und nützlich ist:

main.py
Output
Click Run to see the output here.

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:

main.py
Output
Click Run to see the output here.

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:

main.py
Output
Click Run to see the output here.

and/or liefern den Wert, nicht immer True/False. Sie geben den Operand zurück, der das Ergebnis entschieden hat:

main.py
Output
Click Run to see the output here.

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:

main.py
Output
Click Run to see the output here.

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:

main.py
Output
Click Run to see the output here.

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:

main.py
Output
Click Run to see the output here.

Fast immer willst du ==. Der eine Ort, an dem is wirklich glänzt, ist die Prüfung gegen None, True und False:

main.py
Output
Click Run to see the output here.

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:

main.py
Output
Click Run to see the output here.

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:

  1. ** — Exponent
  2. *, /, //, % — Multiplikation und Division
  3. +, - — Addition und Subtraktion
  4. <, <=, >, >=, ==, != — Vergleiche
  5. not
  6. and
  7. or

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.

Lerne mit Coddy zu programmieren

LOS GEHT'S