3 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
出現(xiàn)這種情況是因?yàn)楫?dāng)你在打印語句中使用“/r”print("Launch in:", contag, end="\r")
它用新字符串替換行中的當(dāng)前字符串,但由于字符串與新字符串的長度不同,
第一個(gè)值的 10 中的 0,永遠(yuǎn)不會(huì)被替換,
因此,要修復(fù)此錯(cuò)誤,您需要做的就是在 print 中添加一個(gè)" "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!")

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
打印的第一條消息是這樣的:
Launch in: 10
指示\r
光標(biāo)返回行首,但不會(huì)擦除已打印的文本。
然后打印的第二條消息是這樣的:
Launch in: 9
第二條消息短了一個(gè)字符,因此0
保留為第一條消息的剩余文本。

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
發(fā)生這種情況是因?yàn)槟_始打印10
。之后你只需覆蓋1
控制臺(tái)上的。您可以通過在 print 命令中添加額外的空格來輕松解決此問題:
print("Launch in:", str(contag) + " ", end="\r")
添加回答
舉報(bào)