我怎样才能在Python 3.2使用与字母之间的间隔while循环(在同一行)打印一个字符串?(Ho

2019-10-18 08:01发布

我想打印由字母串号(在每个印刷之间的停顿)到终端屏幕,我希望它都是在同一条线上。

我现在有这样的:

sleepMode = "SLEEP MODE..."
activ = "ACTIVATE!"
for l in sleepMode:
    print(l, end=" ")
    sleep(0.1)
sleep(2) 
for l in activ:
    print(l, end=" ")
    sleep(0.1)

出于某种原因,这并不印刷品之间的循环睡觉,而是似乎要等到环是打印所有的它在一次前完成。

我希望它看起来像它正在实时在屏幕上“输入”。

有什么建议么?

谢谢! 扎克

Answer 1:

尝试刷新它

for l in activ:
    print(l, end=" ")
    sys.__stdout__.flush()
    sleep(0.1)

不知道这是否会工作,因为我假设你正在使用py3x,它在我的系统工作正常或不冲洗

冲洗只是强制输出缓冲区写入到屏幕...通常会等到它有一些空闲时间,它转储到屏幕上。 但睡眠被锁定它。 所以通过刷新它,你现在正在迫使内容到屏幕上,而不是让内部调度做到这一点......至少,这是我如何理解它。 林很可能缺少一些细微差别



Answer 2:

以下工作:

import time
import sys
sleepMode = "SLEEP MODE..."
activ = "ACTIVATE!"
for l in sleepMode:
    sys.stdout.write(l);
    time.sleep(0.1)
time.sleep(2) 
print
for l in activ:
    sys.stdout.write(l);
    time.sleep(0.1)


文章来源: How can I print a string using a while loop with an interval in between letters (on the same line) in Python 3.2?