首页 > 解决方案 > 为什么下面的代码在输出中打印一个额外的零?

问题描述

我正在进行启动倒计时(从 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!")

标签: pythonformat

解决方案


发生这种情况,因为当您在打印语句中使用“/r”时print("Launch in:", contag, end="\r")

它用新字符串替换行上的当前字符串,但由于字符串与新字符串的长度不同,

第一个值的 10 中的 0 永远不会被替换,

因此,要修复这个错误,您需要做的就是在 print中添加一个" "after 。contagprint("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!")

推荐阅读