练习题--生成器 递归

生成器表达式
练习题一

def demo():
    for i in range(4):
        yield i

g=demo()

g1=(i for i in g)
g2=(i for i in g1)

print(list(g1))
print(list(g2))

练习题二

def add(n,i):
    return n+i

def test():
    for i in range(4):
        yield i

g=test()
for n in [1,10]:
    g=(add(n,i) for i in g)

print(list(g))

递归函数

练习题:

1、小明20岁 ; 后面的同学大2岁,后面的后面的同学比后面的同学大2岁; 求第6位同学的年龄

def age(x):
    if x == 0:
        return 20
    x -= 1
    return age(x) + 2
res = age(3)
print(res)

2、小明买了一包瓜子,每天吃当天瓜子数量的一半,吃到第8天发现还剩5颗,用递归求他一共买了多少颗瓜子

def sum(x):
    if x == 0:
        return 5
    x -= 1
    return sum(x) * 2
res = sum(8)
print(res)

猜你喜欢

转载自www.cnblogs.com/allenchen168/p/11581259.html