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)

 

posted @ 2016-08-23 09:15  whzym111  阅读(173)  评论(0编辑  收藏  举报