函数与过程的概念
函数(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