我尝试执行一些代码,但无法达到预期的输出。预期的输出如下所示:
这是我尝试过的:
n = int(input())
for row in range(1, n + 1):
print(' ' * (n - row), end = '')
for col in range(row, 0 , -1):
print(col, end = ' ')
print()
答案 0 :(得分:2)
这是您的代码的打印输出(当用户输入6
时):
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
如您所见,顶部没有足够的空间。第一行现在有5
个空格,但是它需要另一个5
个空格才能将1
一直推到最右边。第二行有4
个空格,但需要另一个4
。实际上,您需要在每一行的开头将空格数加倍。因此,只需将所需的空格数乘以2:
n = int(input())
for row in range(1, n + 1):
print(' ' * 2 * (n - row), end = '')
for col in range(row, 0 , -1):
print(col, end = ' ')
print()
您看到我添加到您的代码中的* 2
吗?现在是打印输出
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
这就是你想要的。
还有其他获取所需内容的方法。例如,您可以将单个空格替换为两个空格,而不是在该行代码中添加* 2
:
print(' ' * (n - row), end = '')
那也行得通,看起来更好。