变量
变量必须先创建,再使用。也就是说要先用赋值语句初始化即创建变量后,才能对变量进行各种操作,否则,将报错。
例1:
#声明全局变量
>>> global x
>>> x
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
例2
#声明全局变量
>>> global x
>>> x = 100
>>> x
100
>>> y
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined
>>>
从上面两个例子中,我们可以看到,访问变量前要先创建变量。
全局变量与局部变量
如果函数内部没有用global去声明全局变量,那么,函数只能访问全局变量,而不能改变全局变的值,如果是试图为全局量变量赋值,那么这个变量将作为局部变量,只在函数局部作用域内有效。
>>> x =100
>>> def fun():
... print(x)
...
>>> fun()
100
>>>
>>> x = 100
>>> def fun():
... x =200
... print(x)
...
>>> fun()
200
>>> x
100
函数形参列表中的变量名是函数内的定义的局部变量。不能把已定义为局部变量的变量声明为全局变量
>>> x = 100
>>> def fun(x):
... global x
... print(x)
...
File "<stdin>", line 2
SyntaxError: name 'x' is parameter and global