class pascal_triangle(object):
def __init__(self,level_count=10):
self._level_count=level_count
self._sequence=[1]
self._index=0
def __iter__(self):
return self
def __next__(self):
self._index += 1
if self._index==1:
return self._sequence
elif self._index<=self._level_count:
current_sequence=[1]
left_num=1
for item in self._sequence[1:]: # 通过上一层序列的值计算当前层的序列
current_sequence.append(left_num+item)
left_num=item
current_sequence.append(1) # 当前层的序列
self._sequence=current_sequence
return self._sequence
else:
raise StopIteration
if __name__=="__main__":
pascaler=pascal_triangle(level_count=10)
for item in pascaler:
print(" ",f"{item}".center(40," "))
Les résultats sont les suivants:
[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]