|
递归函数和其他拓展
课前练习
请实现一个装饰器,把'函数的返回值'+100然后'返回'
- def ount(fun):
- def werrod(*ardes,**warrrts):
- res=fun(*ardes,**warrrts)
- return res+100
- return werrod
- @ount
- def funs(intes):
- return int(intes)
- res=funs(100)
- print(res)
复制代码 请实现一个装饰器,通过一次调用使函数重复执行5次
- def ount(fun):
- def werrod(*ardes,**warrrts):
- count=0
- while count<5:
- print('输出')
- fun(*ardes,**warrrts)
- count+=1
- return werrod
- @ount
- def funs():
- print('循环')
- funs()
复制代码 三元表达式
- def ount(fun):
- def werrod(*ardes,**warrrts):
- with open('qw','a',encoding='utf-8')as f:
- f.write(f'name={fun.__name__}\n')
- fun(*ardes,**warrrts)
- return werrod
- @ount
- def funs():
- pass
- funs()
复制代码- 递归:直接或者间接的调用其他函数
- def index():
- print('from index')
- func()
- def func():
- print('from func')
- index()
- func()
- 递归在实际编码中是不允许出现的,一旦出现了无限递归就会直接报错
- 1. 递推
- 一层一层的往下寻找答案
- 2. 回溯
- 通过最后一个结果往回寻找最开始的那个答案
-
- 递归是必须有结束条件!!!!
复制代码- 阶乘运算
- def dig(fun):
- def inter(ase):
- if ase==0:
- return 1
- else:
- return inter(ase - 1) * ase
- return inter(fun)
- print(dig(5))
- 求第5个人的年龄
- def inter(ase):
- if ase == 1:
- return 18
- return inter(ase - 1) +2#每个人的年龄相差为2
- res=inter(5)
- print(res)
复制代码 列表生成式
- 二分法的原理:
- 1. 列表必须先排序(从小到大,从大到小)
- 2. 折半查找
复制代码- 一般思路
- 将列表的元素一个一个的经行比较
- 然后得出结果
- l = [11, 2, 3, 43, 55, 67, 23, 45, 45, 88, 99, 66,]
- for i in l:
- if i == 66:
- print('找到了')
复制代码 来源:https://www.cnblogs.com/zhangfanshixiaobai/p/17697341.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|