如何在python中查找pascals三角形的特定行?

如何在python中查找pascals三角形的特定行?,python,python-3.x,pascals-triangle,Python,Python 3.x,Pascals Triangle,下面是我的代码快照,它可以将多达n行的pascal三角形写入一个名为“pascalrow.txt”的文件中,然后将一个行号作为输入,如果找到该行,它将重新打开该文件,找到行号并显示整行 这是一种工作方式,但是..只要我移动到9行以上,那么我就没有返回 例如:我和它工作得很好,正如预期的那样。 但后来我被吓坏了。在第二张图中,可以看到,第9行以上的任何内容,作为输入,都不会返回任何内容。顺便说一句,我使用了文件,因为我不想太多地考虑如何返回行,因为我感觉很懒。无论如何,有人能帮我理解为什么会发生这

下面是我的代码快照,它可以将多达n行的pascal三角形写入一个名为“pascalrow.txt”的文件中,然后将一个行号作为输入,如果找到该行,它将重新打开该文件,找到行号并显示整行

这是一种工作方式,但是..只要我移动到9行以上,那么我就没有返回

例如:我和它工作得很好,正如预期的那样。 但后来我被吓坏了。在第二张图中,可以看到,第9行以上的任何内容,作为输入,都不会返回任何内容。顺便说一句,我使用了文件,因为我不想太多地考虑如何返回行,因为我感觉很懒。无论如何,有人能帮我理解为什么会发生这种情况以及可能的解决办法吗三,

def pascal(n):
    if n==0:
        return [1]
    else:
        N = pascal(n-1)
        return [1] + [N[i] + N[i+1] for i in range(n-1)] + [1]


def pascal_triangle(n,fw):
    for i in range(n):
        fw.write(str(pascal(i))+"\n")
    fw.close()

def findRow(fr,row):
    for x in fr:
        for y in x:
            if y==str(row):
                return (x)



n=int(input("Enter the number of rows to print : "))
fw = open('pascalrow.txt', 'w')
fr = open('pascalrow.txt', 'r')
row = int(input("Enter the row to search : "))
pascal_triangle(n, fw)
a = findRow(fr,row)
print("The",row," th row is : ",a)

事实上,您的代码可以正常工作是令人惊讶的

将字符串列表写入文件中的一行,然后读取该文件并逐个字符查看该行。所以,奇迹般的是,您找到了第8行,因为您找到的第一个8是“[1,8,28…]”中的一个字符。当然,第6行和9以上的任何行都失败了(因为“10”与任何字符都不匹配。)

因此,转储所有文件,然后写入:

a = pascal(n)

你可能想先修复第5行的缩进。哈哈,谢谢你指出我愚蠢的错误:P,谢谢你解决了我的问题:D