在python3.2中,如何使用while循环在字母之间(在同一行上)打印字符串?

2024-09-30 12:24:42 发布

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

我正在尝试将一个字符串字母一个字母地打印到终端屏幕上(每次打印之间有一个停顿),我希望它都在同一行上。在

我现在有这个:

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)

由于某些原因,它不会在循环中的打印之间休眠,而是似乎要等到循环完成后,再将所有打印出来。在

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

有什么建议吗?在

谢谢! 扎克


Tags: 字符串in终端for屏幕mode字母sleep
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)

试着冲洗一下

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

不知道它是否能工作,因为我假设你使用的是py3x,它在我的系统中工作得很好,有或没有flush

flush只是强制输出缓冲区写入屏幕。。。通常情况下,它会等到有空闲时间将其转储到屏幕上。但睡眠把它锁上了。因此,通过刷新它,你现在强制内容进入屏幕,而不是让内部调度程序来做。。。至少我是这么理解的。我可能漏掉了一些细微差别

相关问题 更多 >

    热门问题