pythonを使用してYangHui三角形のコードを出力します

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," "))

結果は次のとおりです。

                    [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] 

おすすめ

転載: blog.csdn.net/lianshaohua/article/details/111050799