所以我正在制作一个帕斯卡三角形,但我不明白为什么这段代码不起作用。它打印出这样的东西

[]
[1]
[1, 2]
[1, 3, 3]
[1, 4, 6, 4]
[1, 5, 10, 10, 5]
[1, 6, 15, 20, 15, 6]
[1, 7, 21, 35, 35, 21, 7]
[1, 8, 28, 56, 70, 56, 28, 8]
[1, 9, 36, 84, 126, 126, 84, 36, 9]

这几乎是正确的,但是似乎这些值似乎是行号太高,所以 1,2 ,如果将 2 计为第一行,将 1 计为第 0 行,则 2 是 1 值太高,因为它第一行,应该是 1,1。下一行应该是 1,2,1,第一个值是正确的,但下一个值太高了 1 个值,之后的一个值太高了 2 个值。

我尝试做类似 append(a-i) 的事情,但它似乎不起作用,你如何让它正确打印?
def triangle(rows):

    for rownum in range (rows):
        newValue=1
        PrintingList = list()
        for iteration in range (rownum):
            newValue = newValue * ( rownum-iteration ) * 1 / ( iteration + 1 )
            PrintingList.append(int(newValue))
        print(PrintingList)
    print()

提前致谢。

最佳答案

我会将 PrintingList = list() 更改为 PrintingList = [newValue]
triangle(10) 然后为您提供以下信息:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

这是一个有效的帕斯卡三角形。

关于python - python中的帕斯卡三角形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3134813/

10-09 01:00