小练习——杨辉三角

参考链接(6楼的回答):
http://www.cnblogs.com/maodouzi/archive/2011/07/12/2104153.html

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 杨辉三角(看了很多,只有这个能够理解。)

def triangles(max):
    n, a, li = 0, 0, [1]
    # 开始循环,max为行数,执行次数=max
    while n < max:
        # 循环直接yield定义好的列表li,值为[1],因为第一行就是[1]。当n=1时,仅执行一次。
        yield li
        # 重点①:方便的列表定义模式,简便头尾的1的添加
        # 重点②:python列表生成式—— 算式 for 变量 in 某个范围。可以方便的生成有规律的list内容
        # 重点③:使用len(li)-1来规定②中生成器的执行次数,这样在max=2时,可以正常执行。超过后也不会有list范围超出的问题。
        li = [1] + [li[n]+li[n+1] for n in range(len(li)-1)]+[1]
        # n自增避免无限循环
        n += 1

for x in triangles(6):
    print (x)


#输出结果:
#[1]
#[1, 1]
#[1, 2, 1]
#[1, 3, 3, 1]
#[1, 4, 6, 4, 1]
#[1, 5, 10, 10, 5, 1]
    原文作者:杨辉三角问题
    原文地址: https://blog.csdn.net/wws563/article/details/52400777
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞