【发布时间】:2016-05-02 11:22:20
【问题描述】:
我正在尝试执行一个递归函数,该函数生成一个帕斯卡三角形直到第 n 行,n 是用户输入。到目前为止,这是我的代码:
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",我不知道为什么。
感谢您的时间和帮助解决我的这个小困境。
【问题讨论】:
标签: python recursion pascals-triangle