python - 为什么下面的代码在输出中打印一个额外的零?
问题描述
我正在进行启动倒计时(从 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!")
解决方案
发生这种情况,因为当您在打印语句中使用“/r”时print("Launch in:", contag, end="\r")
它用新字符串替换行上的当前字符串,但由于字符串与新字符串的长度不同,
第一个值的 10 中的 0 永远不会被替换,
因此,要修复这个错误,您需要做的就是在 print中添加一个" "
after 。contag
print("Launch in:", contag, " ", end="\r")
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!")