image.png

    • yield的使用。执行到yield,中断,生成数,下次又继续执行
    • 每次在最后增加0,便于生成下一行
    1. # 打印杨辉三角
    2. def print_list(array):
    3. for ele in array:
    4. print(ele, end=' ')
    5. print('')
    6. def triangle():
    7. N = [1]
    8. while True:
    9. yield N
    10. N.append(0) # 用于后续叠加
    11. N = [N[i]+N[i-1] for i in range(len(N))]
    12. def print_triangle(x):
    13. count = 0
    14. for t in triangle():
    15. print_list(t)
    16. count += 1
    17. if count == x:
    18. break
    19. print_triangle(int(input()))