函数(二)

参数

1可变,不可变

2必选

3默认

4可变

5关键字



在函数之前,定义的所有的变量都是全局变量。一旦定义了,后面所有的地方一直访问使用。

在函数里定义的变量,都是局部变量,一旦函数运行完毕,局部变量就会被垃圾回收机制回收。

局部变量:1、参数

                   2、在函数里直接定义的变量



可变参数

* :元组

在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。参数组装成一个tutple

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum


**  :字典

变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

def person(name, age, **kw):

print('name:', name, 'age:', age, 'other:', kw)


参数组合排序:def f(a,b=1,*c,**d)

函数内部修改全局变量,报错。函数内部不能修改全局变量。

需要修改的话,需要函数的第一行加global就可以获取/设置全局变量

pass占位符


作用域


小结


递归

递归是自己调用自己的话,迭代就是A不停的调用B.

递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.使用的时候要慎重。


python语言缺陷:递归在python语言里面运行很慢


匿名函数 lambda


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容