Python Fehlermeldung "local variable 'a' referenced before assignment"?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Der Fehler liegt hier:

a = a ^ b

Du definierst lokal in der Methode tausch() eine Variable a und definierst diese als a^b, also greifst du in der Definition von a schon auf a zu und das geht natürlich nicht.

Abhilfe schafft das Schlüsselwort global, das anzeigt, dass du dich auf die globale Variable (jene vor der Methode) beziehst und keine neue, lokale Variable definieren möchtest.

a = 1
b = 2
def tausch() :
  global a
  a = a ^ b
  global b
  b = b ^ a

LG Willibergi