python - 在 Python 3.2 中,如何使用 while 循环打印字符串,其中字母之间有间隔(在同一行)?

标签 python printing sleep

我正在尝试在终端屏幕上逐个字母地打印一个字符串(每次打印之间有一个暂停),并且我希望它全部位于同一行。

我目前有这个:

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)

出于某种原因,它不会在循环中的打印之间休眠,而是似乎要等到循环完成后再一次打印出所有内容。

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

有什么建议吗?

谢谢! 扎克

最佳答案

尝试冲洗它

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

不知道它是否会起作用,因为我假设您正在使用 py3x 并且它在我的系统中无论有没有刷新都可以正常工作

flush 只是强制输出缓冲区写入屏幕......通常它会等到有一些空闲时间将其转储到屏幕。但 sleep 锁定了它。因此,通过刷新它,您现在将内容强制显示到屏幕上,而不是让内部调度程序执行此操作……至少我是这么理解的。我可能错过了一些细微差别

关于python - 在 Python 3.2 中,如何使用 while 循环打印字符串,其中字母之间有间隔(在同一行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433850/

相关文章:

C++ 主文件不显示所有内容

python - python 中的多线程 : when does a thread become inactive?

python - 在 python 中精确 sleep

python - Python中从X到Y的所有函数的列表

Python 碰撞检测,不在 pygame 中

javascript - getElementById 具有动态创建的现有 id

android - 让 Android 进入休眠状态以进行测试

python - 如何在 Python 中将 float 格式化为最大固定宽度

Python/Kivy - 替换调用函数的另一个屏幕中的标签值

HTML/CSS 分页符不起作用