Spyder中的Python time.sleep:如何在打印语句之间暂停?

Spyder中的Python time.sleep:如何在打印语句之间暂停?,python,time,ipython,spyder,Python,Time,Ipython,Spyder,编辑:链接帖子并不能解决这个问题,这仍然是一个悬而未决的问题 我使用iPython在Spyder中执行以下程序: import time print "Please enter your name." userName=raw_input(); print "Now let's wait a few seconds, {}.".format(userName) time.sleep(1) print "Did you lose your patience?" 它会提示用户输入他们的姓名,然后

编辑:链接帖子并不能解决这个问题,这仍然是一个悬而未决的问题

我使用iPython在Spyder中执行以下程序:

import time

print "Please enter your name."
userName=raw_input();
print "Now let's wait a few seconds, {}.".format(userName)
time.sleep(1)
print "Did you lose your patience?"
它会提示用户输入他们的姓名,然后(不是打印第一行,等待,然后打印第二行),它会暂停,然后同时打印最后两条打印语句的输出

当我从命令行运行时,它按预期工作。那么,是否有人知道我可以做些什么,以便脚本显示Spyder/iPython中所需的行为(我在Windows 7中工作,Spyder 2.2.5使用Python 2.7运行iPython)


注意:因为我在从命令行运行时获得了预期的行为,所以处的建议并不明显适用,但可能很容易将该解决方案移植到这种情况下?另外,在sleep命令之前运行'sys.stdout.flush()'似乎没有任何作用。

我在Spyder中测试了这一点,vanza的解决方案适合我。您确定将sys.stdout.flush()放在正确的行中吗?应该是这样的:

vanza的解决方案:

import time
import sys

print "Please enter your name."
userName=raw_input();
print "Now let's wait a few seconds, {}.".format(userName)
sys.stdout.flush() # <- *** it goes here ***
time.sleep(3)
print "Did you lose your patience?"
导入时间
导入系统
打印“请输入您的姓名。”
用户名=原始输入();
打印“现在让我们等待几秒钟,{}.”格式(用户名)

sys.stdout.flush()。使用它而不是
print
userName=raw\u input(“请输入您的姓名”。\n”)
@neuronet:首先,从命令行开始使用它,以确保您的代码是正确的。然后你可以在
ipython
spyder
,看看它是否能把东西弄坏。这是后一个问题:它正在打印,但控制台没有正确滚动…因此这是错误,而不是暂停行为中的错误。这在iPython的“修复”列表中现在。。。。