我已经创建了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)
>>> 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)