函数参数的传递、变量作用域、lambda的使用规则、常用的两个bif(筛选bif——filter(),map())
P1:
1、位置参数和关键字参数都是传递参数的方式,不能算作参数的类型,和默认参数不可进行并列
2、关键字参数要在位置参数的后面
3、*形参和默认参数在一起时,形参位置不同实参的传递方式也不同。若*形参在前,则只能通过关键字参数修改默认参数的值;若默认参数在前,只能通过位置参数修改默认参数的值
P2:
1、对于函数内部重新声明的 和全局变量重名的变量,它的生存期只有函数内部
2、若想在函数内部修改全局变量,需要在函数内部利用关键字global进行声明
3、
在Fun2()中的x是Python重新创建的一个局部的x,不是5
将非全局变量的外部变量引入闭包函数利用的是关键字nonlocal
将全局变量在全局可见可修改利用关键字global
将外界变量传到函数内部,最原始的方法是利用参数传递
P3:
1、lambda的使用规则:lambda [arguments]: expression。
lambda+参数+冒号+返回值,这是一个匿名的函数,使用时需要起一个名字
2、filter()的使用规则:filter(function or None, iterable) --> filter object。注意:filter(筛选条件,筛选对象),返回值是满足条件为True的迭代对象的集合。筛选对象为True的iterable,可以是数值1,也可以是满足的某个条件。function只需要输入函数名即可,不用附上()
ps:对于一个布尔类型的函数,如 return n%2==1 返回值为布尔类型
3、map()的使用规则,map的使用规则和filter类似。filter的功能是批量筛选,而map()的功能则是批量运算。使用规则:map(func, *iterables) --> map object。注意此处使用规则,filter()只能对一个迭代对象进行判断,但是map()可以对多个进行运算。并将返回一个所有迭代对象运算之后值集合的对象。