python:请问为啥函数内不可以用全局变量?

一名刚入门学习python的小百,既然已经定义了全局变量,为啥调用函数的时候,全局变量不起作用?

img

你函数里的x等于又是自定义了局部变量x,x=3还能是创建个局部变量,x+=1就不好使了,报错

因为没有声明为global

img


写成这种感觉就能正常跑起来了
有帮助望采纳

img


py的全局变量在函数内不能改,第一个f1的x是相当于自己重新定义的局部变量
f2报错是应为x+=1这里的x未知
f3直接输出全局变量是可以的

如果你是从C转过来的,那我会告诉你,注意C和python默认的变量作用域是反的,C想要取一个同名变量需要重新声明,而全局变量可以直接用;python不用global限定它就只是只读的,一赋值就自动创建局部变量
如果你是小白,记住就行了,别问为什么

这不是全局变量,您没有声明x是全局变量
在第一次赋值x时,也就是您写的x = 3前面加一行global x即可