翼度科技»论坛 编程开发 python 查看内容

递归函数和其他拓展

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
递归函数和其他拓展

课前练习

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

举报 回复 使用道具