有人可以向我详细解释这段代码吗?我试图了解递归在这里是如何工作的,尤其是previous_lines如何构建为列表。我对n == 2的问题感到困惑,我想知道为什么它没有显示previous_lines [i + 1]的数组错误,其中previous_lines在使用n == 2时甚至没有2个元素。我推测,在n == 2
时,previous_lines只有[1]def pascal(n):
if n == 1:
return [1]
else:
line = [1]
previous_line = pascal(n-1)
for i in range(len(previous_line)-1):
line.append(previous_line[i] + previous_line[i+1])
line += [1]
return line
print(pascal(6))