我在Head First Programming的帮助下教我自己。
我想我可能会更喜欢调整他们的例子,但我想我错过了一些关于time.sleep的事。
我的代码是
print("Welcome to SuperBeans!")
time.sleep(3)
answer = input("Do you need a price now? y/n: ")
但是,在欢迎消息之后三秒钟暂停,它等待3分钟,然后显示消息和输入请求。我错过了什么?
此外,程序似乎在运行我定义的“轮询”功能时无限期挂起,而不会显示“轮询...”通知。我知道get_price()正在工作,因为它将它打印在另一个部分......
def poll():
price = 99.99
print(price)
while price > 4.74:
print("Polling...")
price = get_price()
time.sleep(5)
print("Buy!")
那么为什么欢迎暂停之前我认为它应该是,以及为什么poll()函数会挂起?
答案 0 :(得分:2)
如上面的评论中所讨论的,Python输出正在被缓冲,因此程序运行(并在正确的时间睡眠等),但是你暂时看不到输出。
如果您从非标准控制台运行Python,则需要将“-u”选项传递给Python以禁用缓冲。即:
python -u foo.py
答案 1 :(得分:0)
关于为什么poll()
函数挂起,这可能是因为它停留在while
循环中。
所以问题:get_price()
是否会返回严格大于4.74
的内容? (提示:打印返回的值)