python递归函数定义_python中关于定义函数,递归函数的讲解及案例分析

python 中关于定义函数的讲解以及案例分析(全文中的案例,我都是以图片的形式展现的,主要是让学员自己敲打代码,加深印象,省的直接复制粘贴,那样子很无用!)

f31fbe096b63f624d30c8a6baa7337fc1b4ca3c5.jpeg?token=d51a126ba0c0a4f7fa41adad05e429e3&s=F618AE678DC04C4300671A6E0300507A

定义一个函数,再调用这个函数:

def 开头,后接函数名称和圆括号()。

参数,自变量房子啊圆括号内,圆括号之间可定义参数。

函数第一行可用字符串解释说明定义。

内容以冒号:开始,并且要缩进。

return【表达式】结束函数,选择性的返回一个值给调用方,不带表达式的return相当于返回None.

案例分析:

a044ad345982b2b7ab53e7831c9a17eb77099b61.jpeg?token=9e32da580ce6e29fdafe516720595dbe&s=EE9005C31BADA44B4461140B0000F0C3

关于参数的传递

字符串,元组,数字是不可更改对象,而列表,字典是可以修改对象。

不可变类型:变量赋值 a=5,再赋值a=10,实际上是新生成了一个int值的对象10,再让a指向它。 而5被丢弃,不是改变a的值。相当于新生成了a.

在定义调用函数时也同理,fun(a)传递的只是a的值,没有影响a对象本身,比如在fun(a)内部修改a的值,只是修改另一个复制对象,不会影响a本身。

不可变类型:变量赋值a=[1,2,3,4]后再赋值a[2]=5,则是将list a的第三个元素值更改,本身a没动,只是内部一部分值被修改了。

可变类型:fun(a)将a真正传递过去,修改后fun外部的a也会受影响。

案例分析:

不可变类型:案例一;可变类型:案例二。

34fae6cd7b899e51f26ed0e56f900537c9950d1f.jpeg?token=5387a44dde1cb76b38fad9144ffe9adc&s=AE9215CA5BEC964D4EED540F0000E0C0

函数补充:

不定长参数:加了*号的变量名会存放所有未命名的变量参数。

匿名参数:用lambda 创建匿名参数。用法:lambda[arg1[,arg2……argn]]:experession

局部和全局变量:(作用域)

global:可将变量定义为全局变量(全局变量想作用与局部时)。

案例分析:通过下图案例可以知道,*为元组,**为字典。

cc11728b4710b912f1834513eeca20079345225c.jpeg?token=c2b64ebba6c4accb9bacb67893bab6ef&s=A69015CBD2AF976C0CC5FD0F0000E0C0

递归函数:

定义:函数调取自身。 一切递归实现的功能都可以用循环实现,但是由的时候递归函数更易读。

下面案例分析的就是递归函数与普通函数的区别:

案例算法的介绍,就是在算数学题中的阶乘。 n(n-1)(n-2)(n-3)(n-4)......

e61190ef76c6a7ef512279ecd0cd7355f2de66b4.jpeg?token=683534638ffc76fb145eddf4c587fa8f&s=FE2AAE4703BEC5CE486F8E6E0300D07A

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值