Discuss / Python / 评论区还是厉害,学到了,同时也分享一下我的笨办法

评论区还是厉害,学到了,同时也分享一下我的笨办法

Topic source

def triangles():

    tri = [1]

    m = 1

    while True:

        yield list(tri) #之前总是测试错误,后来尝试了一下取list就好了。感觉应该是之前tri指向的内容会发生改变(因为我的函数定义问题),而这里需要得到一个固定值

        tri.append(1) #思路就是因为每一行都比上一行多一个,那就在末尾添加上‘1’,再将前面的(除第一个‘1’以外和刚刚添加的‘1’以外)每一个元素重新赋值

        i = 1

        while i < m:

              tri[m-i] = tri[m-i-1] + tri[m-i] #本来是正着顺序来的,但是会被覆盖,影响继续循环的正确结果,所以就反过来了,一个道理

              i = i + 1

        m = m + 1


  • 1

Reply