函数的,参数,变量作用域,递归,匿名函数
2017-11-09 本文已影响0人
盛夏光年_49e9
一:函数参数的介绍
1:可变和不可变参数
1.1:必选参数
1.2:默认参数
1.3:可变参数
1.4:关键字参数
第二个定义的函数会报错,原因已经标注二:变量作用域介绍
一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。
变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:
1:全局变量:
2:局部变量:
2.1:
如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量
如果要再函数中修改全局变量,使用global声明。
2.2:局部变量,就是在函数内部定义的变量
不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响
局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
2.3:如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量
2.4:修改全局变量的方法以及常见的错误
小结:
1:在函数外边定义的变量叫做全局变量
2:全局变量能够在所以的函数中进行访问
3:如果在函数中修改全局变量,那么就需要使用global进行声明
4:如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,
小技巧强龙不压地头蛇
三,递归函数
1:如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。
2:满足递归的条件:
1:有循环的内容
2:有跳出的条件
3:递归默认是有递归深度要求的。
以下给出两个例子:斐波那契数列,整数的阶乘,来帮助理解
四:匿名函数
1:用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
2:lambda函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
注意:
Lambda函数能接收任何数量的参数但只能返回一个表达式的值