在Python中打印数字的等速三角形

时间:2017-06-10 13:44:36

标签: python python-3.x

我们可以轻松生成如下三角形数字:

1
22
333, etc...

我正在寻找的是获得答案的方式:

    1
   22 
  333 ( each number at the center of the following, 1 between 22,etc.)

我可以使用此代码使用星号'*'执行此操作:

n=int(input("give the number of star's lines:")
for i in range(n):
   T=' '*(n-i-1) + 'x'*(2*i+1)
   print(T)

我必须使用def功能还是其他功能?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用str.rjust()来证明自己的数字:

n = int(input("give the number lines: "))  # obviously, you should check for non-int inputs
for i in range(1, n + 1):  # loop our number of lines, starting from 1
    print((str(i)*i).rjust(n))  # multiply string repr. of 'i' by itself and 'rjust' it

这可以给你类似的东西:

give the number lines: 5
    1
   22
  333
 4444
55555

您可以增加str.rjust()使用的数字,使其偏离左侧更多偏移量。