pascal(n-1)
не возвращает число, оно возвращает список. Например, pascal(4-1)
возвращает список [1, 2, 1]
. Затем вы используете len
, чтобы получить длину этого списка. Учитывая эту длину, вы создаете al oop over i
, чтобы найти суммы элементов i
и i+1
этого списка. Затем вы добавляете эту сумму к новому списку, который вы создаете.
Чтобы получить треугольник, как на примере изображения, вам понадобятся небольшие изменения:
def pascal(n, indent=""):
line = [1]
if n > 1:
previous_line = pascal(n-1, indent+" ")
for i in range(len(previous_line)-1):
line.append(previous_line[i] + previous_line[i+1])
line += [1]
print(indent + "".join([f'{i:4}' for i in line]))
return line
pascal(6)