python延迟循环没有新行等待,直到循环完成显示文本
问题描述:
我有一个python循环,每次迭代睡0.1秒。它依次将一个字符串打印到控制台。我希望它在每次迭代中都添加一个字符,但问题是它一直等到循环结束才显示文本。这只发生在打印通话结束时的“,end =''”位。python延迟循环没有新行等待,直到循环完成显示文本
import time
def speak(text):
i = 0
for i in range(0, len(text) + 1):
print(text[i], end='')
i += 1
time.sleep(0.1)
speak("Test 123. Can you see me?")
答
正如评论说,你在你的呼叫print(...)
需要flush=True
。另外,你的循环会从字符串的末尾移除一个字符(导致异常),并且在文本的末尾打印一个换行符会很不错。这里有一个固定的后续版本,我的机器上工作:
import time
def speak(text):
for c in text + '\n':
print(c, end='', flush=True)
time.sleep(0.1)
speak("Test 123. Can you see me?")
+0
谢谢!我有点新来python。我非常喜欢这个社区回答问题的速度! –
显示您的代码,请 –
冲洗参数添加到'print'功能得到它立即打印:'打印(文[I],结束=” ',flush = True)' –