有人可以彻底解释一下'\ r'在Python中是如何工作的吗? 以下代码为什么不在屏幕上打印出任何内容?
#!/usr/bin/python
from time import sleep
for x in range(10000):
print "%d\r" % x,
sleep(1)
答案 0 :(得分:1)
'\ r'只是另一个ASCII码字符。根据定义,它是CR或回车。它是使用的终端或控制台,将决定如何解释它。 Windows和DOS系统通常希望每一行以CR / LF结尾('\ r \ n'),而Linux系统通常只是LF('\ n'),而经典的Mac只是CR('\ r');但即使在这些单独的系统上,您通常也可以告诉终端仿真器如何解释CR和LF字符。
历史上(作为打字机工作),LF将光标撞到下一行,CR将其带回第一列。
要回答关于为什么没有打印的问题:删除打印行末尾的逗号。
答案 1 :(得分:1)
请改为:
print "\r%d" % x,
答案 2 :(得分:1)
您的输出正在缓冲,因此它不会立即显示。当它发生时,它被shell或解释器提示破坏了。
每次打印时通过刷新解决此问题:
#!/usr/bin/python
from time import sleep
import sys
for x in range(10000):
print "%d\r" % x,
sys.stdout.flush()
sleep(1)
答案 3 :(得分:0)
这与\r
无关。问题是,
语句中的结尾print
。它尝试打印该行的最后一个值,而,
正在创建一个最后一个值为空的元组。丢失,
,它将按预期工作。
修改强>
我不确定说它创建一个元组是否正确,但无论哪种方式都是您问题的根源。