我正在尝试打印一条消息,每个字符之间暂停 0.2 秒。我在 print(( 方法中添加了一个 end=",以便消息显示在 1 行上,但是当我启动线程时,在暂停之前只打印 1 个字符,直到剩余的睡眠时间结束并打印消息的其余部分。
该程序在没有 end=" 的情况下运行良好,但我不确定为什么。
import time,threading
msg = "68 111 110 117 116 115 32 97 114 101 32 98 111 109 98 "
msg = [int(x) for x in msg.split()]
def print_msg():
for c in msg:
print(chr(c),end=""),time.sleep(0.2)
threading.Thread(target=print_msg).start()
很高兴看到OP可以提供可执行的示例!问题很简单,stdout 有缓存,需要刷新结果:
import time, threading
msg = "68 111 110 117 116 115 32 97 114 101 32 98 111 109 98 "
msg = [int(x) for x in msg.split()]
def print_msg():
for c in msg:
print(chr(c), end="", flush=True)
time.sleep(0.2)
threading.Thread(target=print_msg).start()