使用python创建带数字的模式

时间:2015-10-23 15:40:59

标签: python python-3.4

我正在尝试制作一个打印模式的程序,例如:

n = 4

    1
   12
  123
 1234

现在这就是我所拥有的:

n = int(input("Please enter a positive integer: "))
line = ""
for currentNum in range(1,n+1):
    line = " " * (n-currentNum) + line + str(currentNum)
    print(line)

我没有得到适量的空间我希望能得到。有小费吗?感谢。

这就是我对IDLE的看法:

    1
       12
         123
          1234
          12345

4 个答案:

答案 0 :(得分:2)

for i in range(1, n+1):
    print(" "*(n-i) + "".join(map(str, range(1, i+1))))

答案 1 :(得分:0)

使用.rjust可以更轻松地完成此操作。

n = int(input("Please enter a positive integer: "))
line = ''
for current_num in range(1, n+1):
    line += str(current_num)
    print(str(current_num).rjust(n, ' '))

或者作为尤金的回答:

n=int(input());print('\n'.join(''.join(map(str,range(1,i+1))).rjust(n,' ')for i in range(1,n+1)))

答案 2 :(得分:0)

问题是您每次都要将空格和数字附加到行。您只想附加数字并使用添加的空格进行打印。如果你不能使用其他功能,那么这样的事情就可以了:

n = int(input("Please enter a positive integer: "))
line = ""
for currentNum in range(1,n+1):
    line += str(currentNum)
    spaced_line = ' '*(n-currentNum) + line
    print(spaced_line)

答案 3 :(得分:0)

for i in range(0,n+1):
    print(f"{' '*(n - i)}{''.join([str(x) for x in list(range(1,i+1))])}")

请尝试避免串联以进行有效的内存管理。