我想以以下形式打印一个常量消息:
Time remaining: X Seconds
X
将是倒计时数字。但是我不希望输出像:
Time remaining: 5 Seconds
Time remaining: 4 Seconds
Time remaining: 3 Seconds
Time remaining: 2 Seconds ...
我只希望在同一文本行中更改数字。是否可以使用转义序列或其他方式?
答案 0 :(得分:1)
是的,你可以!
请参阅找到的答案here
代码已被修改了一点,看起来更像你想要的,并使用更新的字符串格式。
from time import sleep
import sys
for i in range(10):
sys.stdout.write("\rTime remaining: {} Seconds".format(i))
sys.stdout.flush()
sleep(1)
print '\n'
答案 1 :(得分:1)
让它发挥作用。 “东西”是显示在倒计时之前显示的短信没有得到“清除”
import time
import sys
num = 5
print('stuff')
while(num >= 0):
sys.stdout.write("\rTime remaining: {} Seconds".format(num))
sys.stdout.flush()
time.sleep(1)
num -= 1
答案 2 :(得分:1)
您可以将end =“”设置为删除换行符并添加回车符'\ r'
因此适合您的正确程序是:
n = 100
while n > 0:
print('\rTime remaining: {} Seconds'.format(n), end=' ')
n -= 1
time.sleep(1)
print(' ')
答案 3 :(得分:0)
在end='\r'
函数中添加参数print
。
import time
x = 10
width = str(len(str(x)))
while x > 0:
print('Time remaining: {{:{:}}} seconds'.format(width).format(x), end='\r')
x -= 1
time.sleep(1)
您也可以参考this post。