n番目の行までのパスカルの三角形を生成する再帰関数を実行しようとしています.nはユーザー入力です。Pascalの三角関数のPython再帰関数
def printPascal(l,n):
while n != 1:
temp = [None]*(len(l)+1)
temp[0] = 1
temp[len(l)] = 1
for i in range(1,len(temp)-1):
temp[i] = l[i] + l[i-1]
l = temp
print(temp)
n = n-1
printPascal(l,n)
n = int(input("Enter a value for n:"))
l = [1,1]
printPascal(l,n)
そして、これは、それが私を与えるエラーです:これは、これまでに私のコードです
Traceback (most recent call last):
File "C:\Users\User\Desktop\test.py", line 16, in <module>
printPascal(l,n)
File "C:\Users\User\Desktop\test.py", line 11, in printPascal
printPascal(l,n)
File "C:\Users\User\Desktop\test.py", line 7, in printPascal
temp[i] = l[i] + l[i-1]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
事は、私はちょっと問題を理解して、無駄にそれを追跡しようとしています。私は何とかtemp[i] = l[i] + l[i-1]
コードでl[i]
またはl[i -1]
のいずれかが"None"
であることを知っています。なぜそれがわかりません。
私のこの小さな苦境にお時間をいただきありがとうございます。
。 0で初期化するだけで問題が隠されます。 – hoyland
はい、あなたはそれについて正しいです。しかし、それは私が実際にエラーを実現するために有効でした:) – Keiwan