这是我的代码:
def getRow(rowIndex):
if rowIndex == 0:
return [1]
if rowIndex == 1:
return [1,1]
def f(n,r):
if n == 1:
print(r)
return r
r = [1]+[r[i] + r[i+1] for i in range(len(r)-1)]+[1]
f(n-1,r)
return f(rowIndex,[1,1])
print(getRow(4))
该print(r)
函数可以很好地工作并给出正确的答案,但是return r
语句根本不起作用。有人知道为什么会这样吗?
所需的输出:[1,4,6,4,1]
实际输出:null
我想知道为什么return r
函数中的f
语句不通过return f(rowIndex,[1,1])
语句返回任何内容。
答案 0 :(得分:0)
return r语句根本不起作用
如果打印有效,则return
有效。但是,它仅在n == 1
时有效。
在所有其他情况下,由于在return None
函数体内没有其他null
语句,因此您的函数实际上将是return
(不是f
)。
也许您可以尝试return f(n-1,r)
而不是简单地调用该函数并忽略返回结果