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