Kva*_*ass 5 python carriage-return sys python-2.7
我在使用回车在python中实现一个简单的倒计时时遇到了麻烦.我有两个版本,每个版本都有问题.
打印版本:
for i in range(10):
print "\rCountdown: %d" % i
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
问题:\r没有做任何事情,因为最后打印了换行符,因此它给出了输出:
Countdown: 0
Countdown: 1
Countdown: 2
Countdown: 3
Countdown: 4
Countdown: 5
Countdown: 6
Countdown: 7
Countdown: 8
Countdown: 9
Run Code Online (Sandbox Code Playgroud)
Sys.stdout.write版本:
for i in range(10):
sys.stdout.write("\rCountdown: %d" % i)
time.sleep(1)
print "\n"
Run Code Online (Sandbox Code Playgroud)
问题:所有的睡眠都发生在开始时,睡眠10秒后它就会打印Countdown: 9到屏幕上.我可以看到\r它正在幕后工作,但是如何让印刷品穿插在睡眠中呢?
对于解决方案2,您需要刷新标准输出.
for i in range(10):
sys.stdout.write("\rCountdown: %d" % i)
sys.stdout.flush()
time.sleep(1)
print ''
Run Code Online (Sandbox Code Playgroud)
此外,只需打印一个空字符串,因为print将附加换行符.或者使用,print '\n' ,如果您认为它更具可读性,因为尾随逗号会抑制通常会附加的换行符.
不知道如何修复第一个虽然......
| 归档时间: |
|
| 查看次数: |
6681 次 |
| 最近记录: |