python基础学习1-生成器,递归函数
#!/usr/bin/env python # -*- coding:utf-8 -*- li=[11,22,33,44,55] r= filter(lambda x:x>22,li) print( r) """ #生成器, 函数创造出来的 yield 生成器的标志 def func(): print(111) yield 1 print(222) yield 2 print(333) yield 3 ret = func() #for i in ret: #每次循环 执行一句yield 输出 1 2 3 #print(i) r1 =ret.__next__()#进入函数找到第一个yeild,获取yield后面的数据 print(r1) r2=ret.__next__()#进入函数找到第二个yeild,获取yield后面的数据 print(r2) r3=ret.__next__()#进入函数找到第三个yeild,获取yield后面的数据 print(r3) """ #---------------------基于生成器现实range功能- range顺序返回数字---------------- def myrange(arg): # 这个函数就是生成器 start =0 while True: if start>arg: return yield start start+=1 ret = myrange(10) #下面这个一个一个取得生成器的值过程就是迭代器 一般用for取值 == for item in ret print(item) r=ret.__next__() print(r) r=ret.__next__() print(r) r=ret.__next__() print(r)
递归函数
def func(n): n+=1 print(n) if n>=10: return 'end' return func(n) func(1)
#递归实现累乘 1*2*3*4*5*6*7 def func1(n): if n==1: return 1 return n*func1(n-1) re = func1(7) print(re)