为什么Python在循环中不打印我要求它打印的内容?

为什么Python在循环中不打印我要求它打印的内容?,python,Python,我有一段代码,其中我使用循环迭代某个方案。在每次迭代中,我都希望打印出发生的事情。下面是一个简单的工作示例: import time Iter=0 for k in range(1,10): Iter=Iter+1 print('At iteration ',Iter,': k=',k,'.',sep='') time.sleep(1) time.sleep(1)可以让我的问题在如此短的迭代方案中变得明显:在每次迭代中,print()函数只打印第一个字符串。其余部分仅

我有一段代码,其中我使用循环迭代某个方案。在每次迭代中,我都希望打印出发生的事情。下面是一个简单的工作示例:

import time
Iter=0
for k in range(1,10):
    Iter=Iter+1 
    print('At iteration ',Iter,': k=',k,'.',sep='')
    time.sleep(1)
time.sleep(1)
可以让我的问题在如此短的迭代方案中变得明显:在每次迭代中,
print()
函数只打印第一个字符串。其余部分仅在下一次迭代调用
print()
函数后显示。如果我在循环外对
print()
函数使用完全相同的语法,那么我将获得所需的输出。当我在循环中时,如何获得相同的输出

我对这一点还不熟悉,但我怀疑这可能与我在Win10机器上使用Python 3.5的Anaconda3(64位)发行版和Spyder IDE有关


编辑1:使用@RemcoGerlich的建议解决:“尝试添加‘导入系统’,然后在打印sys.stdout.flush()之后。”非常感谢

尝试添加“导入系统”,然后在打印
sys.stdout.flush()
之后添加。可能是缓冲输出。你说的“只打印第一个字符串”是什么意思?你是说它只在迭代时打印
,而行的其余部分只在一秒钟后显示?我觉得这很有趣,所以在我的机器上尝试了一下。在python3.5上使用IDLE,Win8&它可以输出全部9行代码。您能提供一些预期的输出吗?@RemcoGerlich所说的应该是可行的尝试一下并对结果进行评论