Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Operatoren

Siehe auch datenstrukturen-collections, Abschnitt “Sets bzw. Mengen”.

1 Vergleichsoperatoren

AusdruckBedeutung
a == ba ist gleich b
a != ba ist ungleich b
a < ba ist kleiner als b
a > ba ist größer als b
a <= ba ist kleiner oder gleich b
a >= ba ist größer oder gleich b

2 Arithmetische Operatoren

AusdruckBedeutung
a + ba wird zu b addiert
a - bb wird von a subtrahiert
a / ba wird durch b geteilt
a // bGanzzahldivision von a durch b
a % bRest von a durch b
a * ba wird mit b multipliziert
a ** ba hoch b (Potenz)

3 Bitweise Operatoren

AusdruckBedeutung
a & bBitweises AND
a | bBitweises OR
a ^ bBitweises XOR
~aBitweises NOT (Eins-Komplement)
a << bBitweise Linksverschiebung
a >> bBitweise Rechtsverschiebung

4 Logische Operatoren

AusdruckBedeutung
a and bBeide sind wahr (AND)
a or bEiner ist wahr (OR)
not aa ist falsch (NOT)

5 Zusammengesetzte Zuweisungsoperatoren

AusdruckBedeutung
a += bWert addieren und zuweisen (a = a + b)
a -= bWert subtrahieren und zuweisen (a = a - b)
a /= bWert teilen und zuweisen (a = a / b)
a //= bGanzzahldivision und zuweisen (a = a // b)
a *= bWert multiplizieren und zuweisen (a = a * b)
a **= bPotenzieren und zuweisen (a = a ** b)
a |= bBitweises ODER und zuweisen (a = a | b)
a &= bBitweises UND und zuweisen (a = a & b)
a ^= bBitweises XOR und zuweisen (a = a ^ b)
a <<= bLinksverschiebung und zuweisen (a = a << b)
a >>= bRechtsverschiebung und zuweisen (a = a >> b)

6 Walrus Operator := (Assignment Expression)

Der Walrus Operator (:=) wurde in Python 3.8 eingeführt und ermöglicht Zuweisungen innerhalb von Ausdrücken.

Syntax:

(variable := expression)

6.1 Grundlegendes Beispiel

# Ohne Walrus Operator
data = input("Enter text: ")
if len(data) > 5:
    print(f"Text is {len(data)} characters long")

# Mit Walrus Operator (kompakter)
if (n := len(input("Enter text: "))) > 5:
    print(f"Text is {n} characters long")

6.2 In while-Schleifen

# Ohne Walrus Operator
line = input("Enter command: ")
while line != "quit":
    print(f"You entered: {line}")
    line = input("Enter command: ")

# Mit Walrus Operator (DRY - Don't Repeat Yourself)
while (line := input("Enter command: ")) != "quit":
    print(f"You entered: {line}")

6.3 In List Comprehensions

# Liste von Quadraten, nur wenn Quadrat > 10
numbers = [1, 2, 3, 4, 5, 6]

# Ohne Walrus Operator (berechnet x**2 zweimal)
squares = [x**2 for x in numbers if x**2 > 10]

# Mit Walrus Operator (berechnet nur einmal)
squares = [square for x in numbers if (square := x**2) > 10]
# [16, 25, 36]

6.4 Bei regulären Ausdrücken

import re

# Ohne Walrus Operator
text = "Email: user@example.com"
match = re.search(r'[\w\.-]+@[\w\.-]+', text)
if match:
    print(f"Found: {match.group()}")

# Mit Walrus Operator
if (match := re.search(r'[\w\.-]+@[\w\.-]+', text)):
    print(f"Found: {match.group()}")

6.5 Wichtige Hinweise

Klammern erforderlich:

# ❌ Syntaxfehler
if n := 5 > 3:
    pass

# ✅ Richtig
if (n := 5) > 3:
    pass

Nicht in allen Kontexten erlaubt:

# ❌ Nicht als standalone statement
n := 5  # SyntaxError

# ✅ Normale Zuweisung verwenden
n = 5

Wann verwenden:

  • Wenn ein Wert berechnet UND in einer Bedingung verwendet wird
  • Bei while-Schleifen mit komplexen Bedingungen
  • In List Comprehensions zur Vermeidung doppelter Berechnungen

Wann nicht verwenden:

  • Wenn normale Zuweisung ausreicht
  • Wenn es die Lesbarkeit verschlechtert