汉诺塔,杨辉三角之python实现

汉诺塔

def move(n, a, buffer, c):
if(n == 1):
print(a, "->", c)
return
move(n-1, a, c, buffer)
move(1, a, buffer, c)
move(n-1, buffer, a, c)

move(1, 'a', 'b', 'c')

杨辉三角

def triangel(n):
L = [1]
while True:
yield L
L = [L[x] + L[x+1] for x in range(len(L)-1)]
L.insert(0,1)
L.append(1)
if len(L) > 10:
break

a = angel(10)
for i in a:
print(i)

注:普通函数和generator生成器的区别:
1.普通函数调用直接返回结果,generator函数的调用,返回一个generator对象;(调用generator时可以先创建一个对象,再用next()方法不断获得下一个返回值,但实际中通常用for循环实现)
2.generator在执行过程中,遇到yield就中断,下次又继续执行

posted @ 2017-03-07 11:30  Emily_zhu  阅读(205)  评论(0编辑  收藏  举报