如何在Python 3.3.3中打印且不换行?

2024-05-15 03:05:10 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我不是在寻找如何用print(some_stuff, end="")在同一行打印。

在Python2.7中,您可以键入:

while True:
for i in ["/","-","|","\\","|"]:
    print "%s\r" % i,

它会打印,在同一行,在同一个位置,这5个字符,使它看起来像你有一个酒吧纺纱(实际上你可以试试)。 问题是,我不能在Python3.3中做同样的事情,我已经尝试了好几种方法。 我的具体应用是倒计时。。。代码如下:

import time
t = 120
while t > 0:
    t -= 1
    print("Time left till next update: %d seconds" % t)
    time.sleep(1)

其中输出应该是字符串,只有秒数改变。。。希望有人能帮我。


Tags: 方法intruefor键入timesome事情
2条回答

使用end='\r'作为关键字参数:

print("Time left till next update: %d seconds" % t, end='\r')

end的默认值是'\n',但您可以指定自己的值。

您也可以尝试更低的级别,例如: os.write(fd, data)fd=1sys.stdin)上。
注意data必须是bytesb'whatever data')。

import os, time
os.write(1, b'Time left till next update: 120 seconds'+b'\b'*8)
t=120
while t>0:
    time.sleep(1)
    t -= 1
    os.write(1, b'\b'*3+str(t).zfill(3).encode())
print()

它在终端中正常工作,但Python IDLE忽略'\r''\b'

相关问题 更多 >

    热门问题