Irgendwie hat noch niemand die ursprüngliche Frage beantwortet. Warum gibt es die `global`-Anweisung. Dabei ist die Antwort einfach. Python erfordert es nicht, Variablen vor ihrer Benutzung deklarieren zu müssen. Variablen in einer Funktion gelten immer als lokal in dieser Funktion. Hat man folgenden Code, so kann man die Variable außerhalb der Funktion deshalb nicht erreichen:
Möchte man, dass eine Zuweisung an eine Variable innerhalb einer Funktion nicht eine neue lokale Variable erschafft, sondern eine äußere globale Variable referenziert, so muss man dies mit `global` tun:
Hinweis: Globale Variablen, die man nicht verändern will, erfordern kein `global`. Sie sind, sofern nicht durch eine gleichnamige lokale Variable überschattet, immer erreichbar.
Stefan