函数是组织好的,可重复使用的,用来实现单一的,相关联功能的代码块,Python跟JAVA一样可以自定义函数。语法如下
def 函数名称(参数):
函数体
函数的调用跟JAVA中方法的调用一样,不同的是,用关键字当传入的参数时,可以不按顺序来传,因为Python解释器能用参数名匹配参数值
自定义函数时,也可以给参数设置默认值 如下:
def a (age =35 ,name)
函数体
当传入的参数没有age时, 会使用默认值, 在Python中,变量就是变量,不存在变量类型。这点不同于JAVA
Pyton中可以定义不定长参数的函数
def a (age ,*varputle)
函数体
加了*号的变量名会存放所有未命名的变量参数,如果在函数调用时没有指定参数,那么它会是一个空元组,我们也可以不向函数传未命名的变量
Python中使用lambda来创建一个匿名函数:所谓匿名函数就是不用def这样的标准格式来创建函数。
lambda只是一个表达式,函数体比def简单多了。lambda拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间的参数。例:
sum = lambda arg1,arg2:arg1+arg2 ;
print("相加之后的值",sum(10,20))
Pyhon中并不是哪个地方都可以访问变量的,访问权决定于这个变量是在哪里赋的值。变量的作用域决定哪一步分程序可以访问哪个特定的变量名称
Python的作用域一共有4中:
L:局部作用域
E:闭包函数外的函数中
G:全局作用域
B:内建作用域
查找顺序是 在局部中找不到就会到局部外的局部中找,再找不到就全局找,没有就内建中找。
Python中只有模块,类,以及函数才会引入新的作用域,其他代码块是不会引入新的作用域的。
当内部作用域想修改外部作用域的变量的时候 就要用到global和nonlocal关键字 如下
global number (number为外部作用域的变量)