Я обнаружил, что усилия по отладке вашего кода были больше, чем попытка начать все заново.Вот один пример более простого решения:
h = int(input("Enter the height of Pascal's triangle to be displayed: "))
for row in range(h):
for column in range(row + 1):
if column > row - column: # reflection about center
column = row - column
result = 1
for i in range(column):
result = (result * (row - i)) // (i + 1)
print(result, end=" ")
print()
Никаких массивов и функций нигде в поле зрения.
Вот еще одно решение с сайта Оксфордского математического центра , которое я перевел сJava для Python для вас:
# http://www.oxfordmathcenter.com/drupal7/node/76
# edu.emory.oxford.paul.oser
# prompt user to enter the number of rows
numRows = int(input("How many rows of Pascal's triangle would you like? "))
# generate numRows rows...
for row in range(numRows):
# the first value is always a 1
value = 1
# later values can be found by successively
# multiplying by a fraction that initially is row/1
numerator = row
denominator = 1
# we will have to perform a total of row multiplications,
# and with each one, the numerator goes down by one
# and the denominator increases by one.
for pos in range(row + 1):
print(value, end=' ')
value = value * numerator // denominator
numerator -= 1
denominator += 1
# start a new row
print()
Опять же, ни массивов, ни функций нигде не видно.