我正在尝试制作一个打印模式的程序,例如:
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
答案 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))])}")
请尝试避免串联以进行有效的内存管理。