Python中的打印和睡眠错误

Python中的打印和睡眠错误,python,Python,所以我在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个字符长),然

所以我在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。知道原因吗?

您应该使用:

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

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

您需要刷新查看。可能的重复项您能为控制台输出缓冲的语句提供一个源吗?是不是stdout是一个缓冲流,不管它去控制台还是文件?@phihag如果它是一个文件,那么
'\n'
不会刷新缓冲区。只有控制台是行缓冲的。谢谢,它现在工作正常。我会尽快接受答案。