def pascal_triangle_based_generator(level_count=10):
sequence = [1]
for index in range(1, level_count + 1):
if index == 1:
yield sequence
else:
current_sequence = [1]
left_num = 1
for item in sequence[1:]:
current_sequence.append(left_num + item)
left_num = item
current_sequence.append(1)
sequence = current_sequence
yield sequence
if __name__ == "__main__":
pascaler = pascal_triangle_based_generator(level_count=10)
for item in pascaler:
print(" ", f"{item}".center(40, " "))
输出结果:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]