python 递归函数_5.python的模块和函数(续)

函数

python中的函数就是以关键字def来定义的代码,而它的类型就是函数返回值的类型


函数的命名

函数可以以字母,下划线,数字组成,但不能以数字开头,函数名后面加有括号,括号里面可以添加参数,参数可以使用实参,也可以使用形参,然后再括号后面加上冒号,换行之后是函数的主体内容


函数的参数

函数的参数可以有多个,可以是实参,也可以是形参,在引用函数时,需要一一对应的给形参赋值,而实参可以直接引用默认值。当然,也可以在函数主体中重新赋值

5400c3eb2d28263d58153fcc86f35447.png
870cdbd285e685436bd7bdfe5d28108a.png

参数也可以是列表,元组等内置数据结构

aeeb38aaff00a79d45fb347505cb0af1.png

当要传递的参数有多个时,函数无法定义到底有几个,这时可以用 “*” 或者 “**”,“*” 可以将多个参数组合成元组引用,“**” 则可以引用字典

1a598c0464b209797b1a1d2ed39ef271.png
8d9ee5b6aff24f294972151f88cc6f3e.png

函数的返回值

函数的返回值是用return语句,return后面可以是变量或表达式。

18012726c47dfb847dd281602eae83c8.png

和C,Java不一样,python函数中的return是可以省略的,但是仍然会获得返回值None,None是python中的一个对象,不属于数字或字符串。当return不带任何参数时,会返回None

e50f863b67a3c2104edf5836ff31498d.png

当需要函数返回多个值时,可以在return后面加多个变量,函数会返回一个元组

3895df9f48b64a7e3c27b4ac54a51ee5.png

函数中可以使用多个return语句,但是不建议使用这种方法,会使程序过于复杂化,可以尝试使用增加变量的方法减少return语句


函数的嵌套和递归

函数的嵌套是指在函数内部调用其他函数。python支持函数之间的嵌套,还支持函数内部嵌套

25109d49f6fba1d26fd5a19358ece32b.png
f64cf2ce5d72c55e27d59fb315c1ead2.png

内部函数还可以支持调用上级函数的变量

bed8bfffdd7063153c68eb11305652b7.png

注意:在编写代码时,尽量不要随意定义内部函数,这样不便于程序的维护,而且嵌套层数越多,后续维护成本就越大

在函数中直接或间接的嵌套函数本身,就是递归函数。这种方法可以减少重复的代码,使代码看上去更加简洁

bbddaa08d8487d0b21de0eb178436b2a.png

注意:递归函数会复制函数变量,占用较多的内存空间,所以不是必须要用递归函数,尽量用其他方法替代


lambda函数

lambda可以创建一个匿名函数

7f7bdbbd949a3c4dcabc133751b1d028.png

或者

08fd9fae5b219c4bca12f2573a574d22.png

Generator函数

Generator的作用是每次产生一个数据项,然后使用__next__()来依次输出

f37ec732dadc4f7a2372df12104ef190.png

return返回值之后,函数会结束,而使用__next__()的话,程序并不会结束,可以使用__next__()继续输出下一个返回值,Generator可以使用于异步操作,当其他操作结束时再进行操作,而且可以占用更少的内存,从而达到优化程序的目的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值