清风一缕入梦来 发表于 2023-9-12 19:12:05

递归函数和其他拓展

递归函数和其他拓展

课前练习

请实现一个装饰器,把'函数的返回值'+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')asf:
            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 =
for i in l:
      if i == 66:
            print('找到了')
来源:https://www.cnblogs.com/zhangfanshixiaobai/p/17697341.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 递归函数和其他拓展