递归,匿名函数

# import sys #模块# sys.getrecursionlimit() #递归最大层数为1000层.#sys.setrecursionlimit() #修改递归层数

# def foo():#直接调用#     print("fore you") #执行#     foo()  #调用函数,当第一遍结束之后才会关闭,第一次调用执行到目前的foo()调用进入第二次调用,# 而第一的次调用结束但是没有关闭,是继续开着的与第二次调用互相关联# foo()#调用函数

# def bre():#间接调用#     print("fore ber")#出现第二个print#     foo()#第三调用,回归foo()定义内## def foo():#     print("fare foo " )#出现第一个print,由bre定义内的foo调用回归到这个print进行打印#     bre()#第二调用# foo() #第一调用#整体就像直接调用# def foo():#     print("fare foo " )#第一打印#     print("fore ber")#第二打印#     foo()#进入调用进行循环#foo()#调用

# def foo(n):#     print("from foo",n)#     foo(n+1) #默认最大循环是1000层左右,超过会自动关闭报错,# 而递归最大的用处就是在于每一次的循环更加逼近于最终结果,而非无意义的循环# foo(0)

# age(5) = age(4) + 2 #递推的需求 #根据递推最后一层的结果回溯后的结果为34# age(4) = age(3) + 2# age(3) = age(2) + 2# age(2) = age(1) + 2# age(1) = 26 #递推最后一层的结果

#age(n) = age(n-1) + 2  #n > 1 #条件的判断#age(1) = 26            #n = 1# def age(n):#     if n == 1:#         return 26     #获得递推答案后,回溯,得到想要的答案#     return age(n-1) + 2 #递推下一层# print(age(5))

# l=[1,[2,[3,[4,[5,[6,[7,[8,[9]]]]]]]]]# def tell(l):#     for time in l:#进行for循环出列表#         if type(time) in list:#用type类型判断time的类型是字符串还是列表,# 这里第一次取得的是字符串1,后面取得的是列表,通过判断后在列表内可以继续循环#             tell(time)#         else:#             print(time)#是字符串就直接打印# tell(l)

# nums=[1,3,5,7,11,22,34,55,78,111,115,137,149,246,371]# def search(search_num,nums):#两个参数,一个是需要判断的值,一个是列表#     print(nums) #打印每次循环的列表#     if len(nums) == 0: #判断当列表长度为0的时候结束循环return,表明当前查找的值不在列表内#         print("notexists")#         return#     mid_index=len(nums)//2 #将列表的长度对半整除之后赋值#     if search_num > nums[mid_index]:#判断预判值是大于中间值#         #in the right #如果大于中间值#         nums=nums[mid_index+1:] #那么针对右边的数会再一次对半进行判断,并且赋值#         search(search_num,nums)#循环执行新的判断#     elif search_num < nums[mid_index]:#判断预判值是小于中间值#         #in the left#如果小于中间值#         nums=nums[:mid_index]#那么针对左边的数会再一次对半进行判断,并且赋值#         search(search_num,nums)#循环执行新的判断#     else:#         print("find it")#直到循环结束后获得由在列表内的值# search(31,nums)

#lambda 匿名函数,匿名函数不能回车,而是全部都写在一行,x,y:x+y# res=(lambda x,y:x+y)(1,2) #x,y 是形参,(1,2)是实参,x+y是执行代码块# print(res)#匿名函数不是这么用# f=lambda x,y:x+y# print(f(1,2))#匿名函数也不是这么用

#max min sorted filter map 使用方式# salaries={#     ‘egon‘:3000,#     ‘alex‘:100000000,#     ‘wupeiqi‘:10000,#     ‘yuanhao‘:2000# }

# max的工作原理#1 首先将可迭代对象变成迭代器对象#2 res=next(可迭代器对象),将res当作参数传给key指定的函数,然后将该函数的返回值当作判断依据# def func(k):#     return salaries[k]#return value# print(max(salaries,key=func)) #next(iter_s) #显示出来的是key永远不变,能变的是依据什么条件的判断#‘egon‘, v1=func(‘egon‘)#‘alex‘, v2=func(‘alex‘)#‘wupeiqi‘, v3=func(‘wupeiqi‘)#‘yuanhao‘, v4=func(‘yuanhao‘)

# print(max(salaries,key=lambda k:salaries[k]))#因为只用一次,以后不用,所以用匿名函数lambda 形参(字典的ket):字典[key]=value

# print(min(salaries,key=lambda k:salaries[k]))

# l=[10,1,3,-9,22]# l1=sorted(l,reverse=False)#False从小到大的排序# print(l1)## l2=sorted(l,reverse=True)#True从大到小的排序# print(l2)

# print(sorted(salaries,key=lambda k:salaries[k],reverse=True)) #收入从大到小的顺序排列

# map的工作原理#1 首先将可迭代对象变成迭代器对象#2 res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,然后将该函数的返回值当作map的结果之一# names=[‘yy‘,‘qq‘,‘pp‘,‘dd‘]# aaa=map(lambda x:x+"_SB",names) #为所有对象加上后缀并成为迭代器# print(aaa) #打印可以看出是形成迭代器# print(list(aaa))#用列表方式可以看到其内容

# print([name+"_SB" for name in names])

# filter的工作原理#1 首先将可迭代对象变成迭代器对象#2 res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,然后filter会判断函数的返回值的真假,如果为真则留下res# names=[‘aaSB‘,‘dd‘,‘bbSB‘,‘ccSB‘]## print([name for name in names if name.endswith(‘SB‘)])## aaa=filter(lambda x:x.endswith(‘SB‘),names) #按照制定后缀结尾,filter判断函数返回值是否为真,如果为真就留下,# # 不是就删除.也是迭代器形式,通过list列表来查看# print(aaa)# print(list(aaa))

# 掌握# res=‘你好‘.encode(‘utf-8‘)# print(res)## res=bytes(‘你好‘,encoding=‘utf-8‘)# print(res)

# 参考ASCII表将数字转成对应的字符# print(chr(65))# print(chr(90))# 参考ASCII表将字符转成对应的数字# print(ord(‘A‘))

# print(divmod(10,3))

# l=[‘a‘,‘b‘,‘c‘]# for item in enumerate(l):#     print(item)

# l=‘[1,2,3]‘# l1=eval(l)# print(l1,type(l1))# print(l1[0])

# with open(‘a.txt‘,encoding=‘utf-8‘) as f:#     data=f.read()#     print(data,type(data))#     dic=eval(data)#     print(dic[‘sex‘])

# print(pow(3,2,2)) # (3 ** 2) % 2

# print(round(3.3))

# print(sum(range(101)))

module=input(‘请输入你要导入的模块名>>: ‘).strip() #module=‘asdfsadf‘m=__import__(module)print(m.time())

# 面向对象里的重点# classmethod# staticmethod# property## delattr# hasattr# getattr# setattr## isinstance# issubclass## object## super

# 了解# print(abs(-13))# print(all([1,2,3,]))# print(all([]))

# print(any([0,None,‘‘,1]))# print(any([0,None,‘‘,0]))# print(any([]))

# print(bin(3)) #11# print(oct(9)) #11# print(hex(17)) #11

# print(callable(len))

# import time# print(dir(time)) #列举出所有:time.名字

# s=frozenset({1,2,3}) # 不可变集合# s1=set({1,2,3}) # 可变集合

# a=1111111111111111111111111111111111111111111111# # print(globals())# # print(locals())# def func():#     x=222222222#     # print(globals())#     print(locals())# func()

# hash([1,2,3])

# def func():#     """#     文档注释#     :return:#     """#     pass## print(help(func))

# l=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]# s=slice(1,4,2)# print(l[1:4:2])# print(l[s])

# print(vars())

原文地址:https://www.cnblogs.com/yf18767106368/p/9183438.html

时间: 2024-07-31 00:31:30

递归,匿名函数的相关文章

4/2 三元表达式/函数递归/匿名函数/内置函数

三元表达式 def max2(x,y) if x > y: return x else return y res=max2(10,11) 三元表达式仅应用于: 1 条件成立返回一个值 2 条件不成功返回一个值 def max2(x,y): return x if x>y else y print (max2(2,10)) 10 函数递归:函数的递归调用,即在函数调用的过程中,又直接或间接地调用了函数的本身. 直接调用 def foo(): print ('fffff') foo() 间接调用

函数递归+匿名函数+内置函数day15

一.函数递归 什么是函数递归: 函数递归调用是一种特殊的嵌套调用,在调用一个函数的过程中,又直接或间接地调用了该函数本身. 其中,函数的递归有明确的结束条件,不能无限制的调用,否则会撑破内存,在Python中限定递归最多调用1000层. 1000层这个值是大概的数值,这个数值可以通过Python内置的功能进行更改. 递归必须要有两个明确的阶段: 递推:一层层递归调用下去,强调每次进入下一次递归,问题规模都在减小 回溯:递归必须要有一个明确的结束条件,在满足该条件时结束递推,开始一层层回溯 其中,

递归/匿名函数/三元表达式/列表生成式/字典生成式/二分算法

让在下揭开尔等的面纱,一探究竟:) >>>递归: 递归是一个往复的过程,也就是由两个过程组成,一个是计算过程,一个是将值层层返回的过程,递归的奇妙之处,就在于自身调用自身,然后,过程遵循由复杂到简单,最终满足相应条件后,退出,返回结果.说了一大堆,不过直接上代码: test_list = [1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13,[14,]]]]]]]]]]]]]] res = 0 def sum_list(test_list, res): f

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

知识点一.递归 def fun(): num = int(input('输入内容')) if num%2 == 0: print('偶数') return else: fun()fun() 知识点二.匿名函数 #匿名函数#f = lambda x,b:str(x+b)#入参:返回值#(0,30)补零,map()循环函数,str(x).zfill(2)补零result = list(map(lambda x:str(x).zfill(2),range(1,30)))print(result) #枚

python函数 变量 递归 匿名函数 内置函数 文件操作

1 语法 #语法 def 函数名(参数1,参数2,参数3,...): '''注释''' 函数体 return 返回的值 #函数名要能反映其意义 返回值数=0:返回None放回值数=1:返回object放回值数>1:返回tuple 2.定义函数的三种形式 1.无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印2.有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值 3.空函数:设计代码结构 形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,

在NewLisp中实现匿名函数的递归

匿名函数在很多语言中的表现形式大概如下: (lambda (n)   (* (+ n 1) (- n 1))) 只有参数列表和函数体,而没有名字.在大部分情况下没问题,但是一旦需要用到递归的话,就有点麻烦了,因为不知道如何去递归的调用一个匿名函数. 在学术界中有一些解决这个问题的办法,其中一个就是Y组合子,但是那个太繁琐,而且难以通过宏自动将一个lambda变成可递归形式,没什么好处. 根据历史经验,目前比较好的办法,就是实现一个操作符,匿名函数通过这个操作符来调用自身: (lambda (n)

python协程函数、递归、匿名函数与内置函数使用、模块与包

目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a.生成器相关python函数.装饰器.迭代器.生成器,我们是如何使用生成器的.一个生成器能暂停执行并返回一个中间的结果这就是 yield 语句的功能 : 返回一个中间值给调用者并暂停执行. 我们的调用方式为yeild 1的方式,此方式又称为生成器的语句形式. 而使用生成器的场景:使用生成器最好的场景就

(转)javascript匿名函数的写法、传参和递归

(原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 http://www.veryhuo.com 2011-08-07 断桥残雪部落格 投递稿件 我有话说 今天在整理javascript入门培训的PPT时,提到了匿名函数,所以拿来分享下心得. 匿名函数的写法顾名思义,就是没有名字的函数(⊙﹏⊙b汗).匿名函数通常用于javascript作用域的控制,可以有效的避免对全局变量的污染.常见的匿名函数有下面四种写

(转)Javascript匿名函数的写法、传参、递归

(原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 javascript匿名函数的写法.传参和递归 http://www.veryhuo.com 2011-08-07 断桥残雪部落格 投递稿件 我有话说 今天在整理javascript入门培训的PPT时,提到了匿名函数,所以拿来分享下心得. 匿名函数的写法顾名思义,就是没有名字的函数(⊙﹏⊙b汗).匿名函数通常用于javascript作用域的控制,可以有效的