函数与过程的概念
函数(function):有返回值
过程(procedure):简单、特殊,没有返回值
Python严格来说只有函数,没有过程。
因为Python任何函数都会返回一些东西,有返回值则返回值,没有则返回None,None是一种特殊的值。
函数变量的作用域
局部变量与全局变量
局部变量就是只在函数内有效的变量,在函数外无法调用。
全局变量则在整个文件中有效。
在定义函数过程中可以访问全局变量,但是修改全局变量的值是不行的,因为此时Python会自动创建一个与全局变量名相同的局部变量(shadowing),函数执行完之后全局变量实际并未被改变。
>>> x = 50
>>> def func(x):
print('x等于',x)
x =2
print('局部变量x改变为',x)
>>> func(x)
x等于 50
局部变量x改变为 2
>>> print('x一直是',x)
x一直是 50
想给在顶层的程序(即未在任何类型的范围如函数或类之中)定义的变量赋值,需要使用global语句告诉Python这个变量是全局的。
>>>x = 50
>>> def func():
global x #此处声明x为全局变量
print('x的值是',x)
x = 2
print('全局变量x的值改为',x)
>>> func()
x的值是 50
全局变量x的值改为 2
>>> print('x的值是',x)
x的值是 2
局部变量与全局变量的说明还可看下:http://c.biancheng.net/cpp/html/1827.html