Python:时间。睡觉功能意外?

2024-09-29 23:32:14 发布

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

我正在尝试创建一个简单的函数,它将逐字键入字符串,例如在游戏中,文本滚动。在

我的代码如下:

import time

def ScrollingText(s):
     s=str(s)
     for letter in s:
          print(letter, end="")
          time.sleep(.05)
     print("")    # newline at the end
if __name__=='__main__':
     ScrollingText("Hello World!")

但是,当我运行时,它会等待,然后立即转储整个字符串。我是python新手(还有这个论坛),所以如果有人能给我指出正确的方向,告诉我我在这里缺少什么时间。睡觉我将非常感激。谢谢!在


Tags: 函数字符串代码文本import游戏for键入
1条回答
网友
1楼 · 发布于 2024-09-29 23:32:14

由于字符串中没有新行,python将对其进行缓冲。必须在每个字符后显式刷新输出,如下所示:

import sys
import time

def ScrollingText(s):
     s=str(s)
     for letter in s:
          print(letter, end="")
          sys.stdout.flush()
          time.sleep(.05)
     print("")     # newline at the end

为了获得更好的性能,I/O通常是缓冲的,也就是说,python将收集您打印的数据,直到它可以作为一个大的块发送出去(顺便说一下,这也适用于文件I/O)。通过调用flush()对系统标准输出(这是print默认写入的文件对象),强制python将数据发送到操作系统(操作系统将把数据发送到终端)。在

相关问题 更多 >

    热门问题