我正在做发射倒计时(从10到0),但是打印“10”之后,而不是打印“9”,“8”。。。 它结束打印“90”,“80”,“70”。。。 再加上一个零。
代码如下:
import time
contag = 10
while True:
print("Launch in:", contag, end="\r")
contag -= 1
time.sleep(1)
if contag == 0:
break
print()
print()
print("Liftoff!")
这是因为当您在print语句print(“launch in:”,contag,end=“\r”)
中使用“/r
它用新字符串替换行上的当前字符串,但由于该字符串与新字符串的长度不同,
从第一个值10开始的0永远不会被替换,
因此,要修复此错误,您只需在printprint(“launch in:”,contag,“”,end=“\r”)
中的contag
后面添加一个“”
。
import time
contag = 10
while True:
print("Launch in:", contag, " ", end="\r")
contag -= 1
time.sleep(1)
if contag == 0:
break
print()
print()
print("Liftoff!")
这是因为您开始打印10
。 之后,您只需覆盖控制台上的1
。 您可以通过在print命令中添加一个额外的空间来轻松解决此问题:
print("Launch in:", str(contag) + " ", end="\r")
打印的第一条信息如下:
Launch in: 10
\r
告诉光标返回到行首,但它不会擦除已经打印的文本。
那么打印的第二条消息是这样的:
Launch in: 9
第二条消息短了一个字符,因此0
作为第一条消息的剩余文本保留下来。