【发布时间】:2021-11-16 07:06:41
【问题描述】:
我们被要求打印以下输出:
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
4 4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6
7 7 7 7
8 8 8
9 9
10
我知道它需要两个循环,所以我厌倦了这个:
a = int(input())
i = a
f = 1
while i>0:
for j in range(i):
print(f,end=' ')
f += 1
i -= 1
print('\r')
有了这个,我得到了想要的输出,但是一旦我删除 print('\r') 的最后一行,输出就会变成这样:
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 7 7 7 7 8 8 8 9 9 10
当我使用 print(' ') 而不是 print('\r') 时,所需的输出也会出现,我不明白为什么会这样?
Ps:我是一个新手程序员,从大一开始,所以如果格式不符合标准,或者代码看起来很庞大,请放轻松。
【问题讨论】:
-
您需要将
print('\n')作为最后一行。\r将光标放回第 1 列,但不前进到下一行。而且你真的不需要那里有两个计数器;你可以做for f in range(1,a+1):。 -
@TimRoberts
print('\n')将打印两个换行符,因为print()的本质是默认总是打印一个换行符。 -
你是对的。
print('')是正确答案。 -
在其他一些语言或脚本语言(大多数旧版本)中,在为 Windows 操作系统设计的服务器中,我们使用 CRLF \r\n .. 我不知道 python,所以如果这会改变事情,请尝试自己\r = 回车,\n= 换行
-
好吧,所以 print(' ') 会自动将光标移到下一行,但是我不明白的是,为什么光标在 print( f,end='') 语句,为什么我需要添加额外的打印? @Felk 你的意思是 print() 总是打印一个新的空行吗?
标签: python python-3.x loops