Creo que no estás entiendo sobre como trabaja
Python, antes de pensar en "un fallo", deberías aprender más y analizar porque sucede esto o el otro.
Ese código está mal hecho, si te fijas, la variable "
x" es una variable
local ya que al llamar a una función, la misma la toma como local (por más que parezca global), entónces se debe pasar la variable a global en la función antes de poder trabajar con ella o pasar la variable
x como argumento, aquí te dejo dos códigos para que los estudies bastante así podés entender como trabaja Python, antes de pensar en un fallo:
Código Python:
Ver originalx = 0
def f():
global x
x += 3
print x # Muestra en la consola 3
f()
raw_input()
Aquí hay otra forma más:
Código Python:
Ver originalx = 0
def f(x):
x += 3
print x # Muestra en la consola 3
f(x)
raw_input()
También podés usar este método:
Código Python:
Ver originalx = 0
def f(x):
x += 3
return x
print f(x)
raw_input()
Veo que no prestás atención a las personas que intentan ayudarte, yo se muy poco, pero aquí te demuestro que el error es del programador, no del lenguaje. Analizá esos códigos y comprendé porque deben ser así, lee algún manual para entender como funcionan las variables.
De todas maneras aquí te dejo una buena explicación y ayuda sobre como trabajan las variables en este Hermoso lenguaje que es
Python:
http://elclubdelautodidacta.es/wp/20...-una-variable/
Que tengas buen día.