Dies ist mit Scope.
Der Ort, zu tun, die Variablen definiert werden, ist wichtig, und sie an bestimmten Stellen definieren, will sie an anderer Stelle verschwinden. Hier ein Beispiel:
# PLEASE NOTE: This code will fail.
a = "Hello"
def my_func():
b = "Hello" # Declare a variable 'b', but only in this scope, in other words this function.
my_func()
print(a) # Works, since a is in the same scope.
print(b) # Fails, since b was defined inside a different scope, and discarded later.
Da in Ihrem Beispiel raiz
innerhalb der Funktion funcion
erklärt wurde, Python sie verworfen, nachdem funcion
genannt wurde. Wenn Sie die Zeile setzen:
raiz = 0
vor Ihrer Funktionsdefinition würde die Funktion einfach die Variable aktualisieren, so gäbe es kein Problem sein, da der Umfang der gleiche wie sein würde, wo die print
Anweisung auftritt.
tl; dr: Die Variable raiz
wurde nur in funcion
deklariert, daher wurde sie danach verworfen.