Python 2.7 创建非右Pascal';python中的s三角形(居中)
我需要编写一个代码,输入一个非右Pascal三角形,给定第n个级别作为输入,其中第一行是第0个级别。除此之外,必须在每行的末尾指示级别。 以下是我迄今为止所做的:Python 2.7 创建非右Pascal';python中的s三角形(居中),python-2.7,pascals-triangle,Python 2.7,Pascals Triangle,我需要编写一个代码,输入一个非右Pascal三角形,给定第n个级别作为输入,其中第一行是第0个级别。除此之外,必须在每行的末尾指示级别。 以下是我迄今为止所做的: level = input('Please input nth level: ') x = -1 y = 1 while x < level: x = x+1 d = str(11**x) while y < level: y = y+1 print " ",
level = input('Please input nth level: ')
x = -1
y = 1
while x < level:
x = x+1
d = str(11**x)
while y < level:
y = y+1
print " ",
for m,n in enumerate(d):
print str(n) + " ",
while y < level:
y = y+1
print " ",
print x
我期望的输出是:
1 0
1 1 1
1 2 1 2
1 3 3 1 3
您可以使用将字符串居中:
level = int(raw_input('Please input nth level: '))
N = level*2 + 5
for x in range(level+1):
d = ' '.join(str(11**x))
print('{d:^{N}} {x:>}'.format(N=N, d=d, x=x))
请注意,如果
d='1331'
,则可以使用以下方法在每个数字之间添加空格:
请注意,使用
d=str(11**x)
计算帕斯卡三角形中的数字是一种有问题的方法,因为它不能为x>=5提供正确的数字。比如说,
Please input nth level: 5
1 0
1 1 1
1 2 1 2
1 3 3 1 3
1 4 6 4 1 4
1 6 1 0 5 1 5 <-- Should be 1 5 10 10 5 1 !
请输入第n级:5
1 0
1 1 1
1 2 1 2
1 3 3 1 3
1 4 6 4 1 4
1 6 1 0 5 1 5是的,您需要更改对齐方式。
Please input nth level: 4
1 0
1 1 1
1 2 1 2
1 3 3 1 3
1 4 6 4 1 4
In [29]: d = '1331'
In [30]: ' '.join(d)
Out[30]: '1 3 3 1'
Please input nth level: 5
1 0
1 1 1
1 2 1 2
1 3 3 1 3
1 4 6 4 1 4
1 6 1 0 5 1 5 <-- Should be 1 5 10 10 5 1 !