[英]Carriage Return not working in IDLE?
我正在尝试为保持原位的倒数计时器创建代码:以便每一行覆盖前一行。 这是我到目前为止:
import time
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timeformat = "{:02d}:{:02d}".format(mins, secs)
print(timeformat, end='\r')
time.sleep(1)
t -= 1
print("That's the end! You lose...\n\n\n\n\n")
exit()
countdown(10)
但是,输出是:
00:10
00:09
00:08
...
00:00
That's the end! You lose...
为什么回车似乎不起作用?
IDLE 不支持大多数控制字符,例如\\r
、 \\b
。 2020 年依然如此(Python 3.9 不支持)
如果您在 Unix 终端或 Windows 控制台中启动 Python REPL, \\r
应该可以工作。
当\\r
不起作用时,尝试\\x08
(退格),并添加flush=True
以确保安全:
print('\x08' * 5 + timeformat, end='', flush=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.