Python 2.7 创建非右Pascal';python中的s三角形(居中)

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

我需要编写一个代码,输入一个非右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 " ",
    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 !