Python中各位大佬请进,有点小问题

In [13]: for i in range(1, 5):
    print '\r{0}'.format(i),
    time.sleep(1)
   ....:     
4 

In [14]: for i in range(1, 5): print ‘{0}\r’.format(i), time.sleep(1) …:
4

上面都是只在最后才打印一个 4,不能 1, 2, 3, 4 的在同一行循环显示,就像下载进度条增量改变一样,请大佬指教


Python中各位大佬请进,有点小问题

11 回复

<br>for i in range(1, 5):<br> dd = '.'*i<br> sys.stdout.write(dd+'\r')<br> sys.stdout.flush()<br> time.sleep(1)<br><br>
这样可以了,但是 print 依旧不知如何实现


我无法理解你的问题

python3


import time

for i in range(100):
time.sleep(1)
print(’\r{}%’.format(i), end=’’, flush=True)

你的意思是 print 输出时不换行吗? py3 可以 print(i,end="") ,py2 可以 print i,

python2 的 print 会换行的。

python3 可以取消。

for i in range(1, 5):
print '{0} '.format(i),
sys.stdout.flush()
sleep(1)



一个逗号居然可以去换行,见识了!

py2 可以在后面加个逗号取消

python 2.X 无法用 print 实现,即使 from future improt print_function,print() 函数也不支持 flush 参数。

不能 flush 就无法实现。

是这样的,但是需要依赖 sys.stdout.flush() ,谢了
说的对

回到顶部