Ausdrücke und Operatoren

Ausdrücke

Ein Ausdruck kombiniert Literale, Namen, Funktionsaufrufe und Operatoren zu einem Wert. Beispiele sind 2 + 3, len(text) > 10 oder name in teilnehmer. Ein Ausdruck muss nicht zwingend einer Variablen zugewiesen werden.

Wichtige Operatoren

| Operator | Bedeutung | Beispiel | | --- | --- | --- | | +, - | Addition, Subtraktion | 10 - 37 | | * | Multiplikation | 6 * 742 | | / | True Division | 10 / 42.5 | | // | Floor Division | 10 // 42 | | % | Rest/Modulo | 27 % 76 | | ** | Potenzierung | 10 ** 31000 | | @ | Matrixmultiplikation für Typen, die sie implementieren | z. B. NumPy-Arrays | | ==, != | Gleichheit/Ungleichheit | 2 == 2True | | <, <=, >, >= | Größenvergleiche | 2 <= 3True | | is, is not | Objektidentität | x is None | | in, not in | Mitgliedschaft | 1 in [3, 2, 1]True | | and, or, not | boolesche Verknüpfungen | a and b | | &, |, ^ | bitweises Und, Oder, XOR | 6 ^ 35 | | ~ | bitweise Invertierung | ~3-4 | | <<, >> | Bitverschiebung | 6 << 348 |

/, // und %

Bei Python 3 liefert / bei der Division zweier Integerwerte einen float. Der Operator // berechnet dagegen die mathematische Floor Division: Das Ergebnis wird in Richtung minus unendlich abgerundet. Deshalb gilt:

10 / 3       # 3.3333333333333335
10 // 3      # 3
-10 // 3     # -4
int(-10 / 3) # -3

Floor Division und Modulo hängen zusammen. Für geeignete Zahlen x und y != 0 gilt:

x == (x // y) * y + (x % y)

Gleichheit ist nicht Identität

== vergleicht Werte, is vergleicht Objektidentität. Für Zahlen, Strings, Listen oder andere normale Werte sollte man zur Wertprüfung == verwenden. is ist beispielsweise bei x is None die richtige Wahl.

Verkettete Vergleiche

Python erlaubt mathematisch gut lesbare Vergleichsketten:

0 <= x < 100

Das entspricht sinngemäß 0 <= x and x < 100, wobei x in der Vergleichskette nur einmal ausgewertet wird.

Boolesche Operatoren

not liefert einen booleschen Wert. and und or liefern dagegen einen ihrer Operanden zurück. Dadurch sind Ausdrücke wie name or "Unbekannt" möglich. In Bedingungen entscheidet jeweils der Wahrheitswert (truth value) des Objekts.