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.

Diese Seite enthält ausführbare Editoren — bearbeiten, ausführen und Ausgabe sofort sehen.

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 / 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:

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:

  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.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S