Code bitte in code-tags setzen. Das ist der </>-Knopf im vollstaendigen Editor. Sonst gehen die in Python enorm wichtigen Einrueckungen verloren.
Zu deiner Frage: eine Zuweisung
behandelt Python implizit als lokale Variable, die nur sichtbar ist in der Funktion. Weil es anders als in anderen Sprachen keine explizite Deklaration von Variablen gibt. Wenn sich also diese Anweisung auf eine globale Variable beziehen soll, muss man das dem Interpreter extra mitteilen. Und damit wird jede Zuweisung an die Variable so behandelt, als ob sie auf der Moduleben gestanden haette, wie dein erstes Statement.
Eine wichtige allgemeine Anmerkung: globaler Zustand ist ein grosses Problem, und sollte tunlichst vermieden werden. Den Mechanismus zu verstehen ist ok. Ihn zu benutzen in 99% der Faelle falsch, und einem Anfaenger ist es nicht moeglich zu entscheiden, wann dem so ist, und wann nicht. Weshalb jeder Gedanke an "oh, ich weiss, ich benutze eine globale Variable" zu weiterem nachdenken fuehren sollte. Nicht zu weiteren globalen Variablen.