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)

浙公网安备 33010602011771号