让pascals以多行打印

bar*_*kyo 3 python list

我已经创建了Pascal的Triangle但是它在一行上打印.任何建议如何让它打印成行(不是三角形)?

row=input("Please enter height: ")
triangle=[]
for rownum in range (0,row+1):
   newvalue=1
   newrow=[]
   if row==0:
       newrow.append(int(newvalue))

   elif row==1:
       newrow.append(int(newvalue,newvalue))

   else:

       for column in range(rownum):
         if column==0:
             newrow.append(1)
         elif column==(rownum-1):
             newrow.append(int(newvalue))
         else:
             new_value=triangle[rownum-1][column]+triangle[rownum-1][column-1]
             newrow.append(int(new_value))
   triangle.append(newrow)
print triangle
Run Code Online (Sandbox Code Playgroud)

wim*_*wim 5

>>> print '\n'.join(' '.join(str(n) for n in row) for row in triangle)

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Run Code Online (Sandbox Code Playgroud)

或者,用于str.center更好地对齐事物:

>>> print '\n'.join(' '.join(str(n) for n in row).center(80) for row in triangle)

                                       1                                        
                                      1 1                                       
                                     1 2 1                                      
                                    1 3 3 1                                     
                                   1 4 6 4 1                                    
                                 1 5 10 10 5 1                                  
Run Code Online (Sandbox Code Playgroud)

要为更大的比例正确保留几何体,可以使用如下str.format技巧:

>>> print '\n'.join(' '.join('{:3d}'.format(n) for n in row).center(80) for row in triangle)

                                        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                     
Run Code Online (Sandbox Code Playgroud)