【问题标题】:Error with Print and Sleep in PythonPython中的打印和睡眠错误
【发布时间】:2018-08-27 06:49:50
【问题描述】:

所以我在使用 Python 时遇到了一些问题。我有一个代码是:

import time

def printChat(string, sleepTime):
    for a in string:
        print (a, end="")
        time.sleep(sleepTime)
    print()

当我执行 printChat("Hello", 0.1) 时,它应该打印一个字母并等待 0.1 秒,然后打印下一个,但是它等待 0.5 秒(因为 'hello' 是5 个字符长)然后突然打印 hello。知道这是为什么吗?

【问题讨论】:

标签: python


【解决方案1】:

你应该使用:

        print (a, end="", flush=True)

因为控制台输出是行缓冲的。

【讨论】:

  • 您能否提供控制台输出被缓冲的语句的来源?无论是进入控制台还是文件,stdout 不是缓冲流吗?
  • @phihag 如果它是一个文件,那么'\n' 不会刷新缓冲区。只有控制台是行缓冲的。
  • 谢谢,它现在工作正常。我会尽快接受答案。
猜你喜欢
  • 1970-01-01
  • 2016-09-22
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
  • 1970-01-01
  • 2014-07-02
相关资源
最近更新 更多