我试图连续通过WHILE循环来检查每十五分钟的情况。当使用time.sleep(900)时,它会暂时执行WHILE循环15分钟,然后在条件满足后停止运行。
我认为Python 2出于这个原因使用了这个函数,Python 3.3不再遵循这个了吗?如果没有,即使条件已经满足,我将如何无限期地通过while循环?
以下是我的代码片段:
if price_now == 'Y':
print(get_price())
else:
price = "99.99"
while price > "7.74":
price = get_price()
time.sleep(5)
修改 根据eandersson反馈更新。
if price_now == 'Y':
print(get_price())
else:
price = 99.99
while price > 7.74:
price = get_price()
time.sleep(5)
get_price()
功能:
def get_price():
page = urllib.request.urlopen("link redacted")
text = page.read().decode("utf8")
where = text.find('>$')
start_of_price = where + 2
end_of_price = start_of_price + 4
price = float(text[start_of_price:end_of_price])
return(price)
答案 0 :(得分:2)
我认为在这种情况下的问题是你要比较一个字符串,而不是一个浮点数。
price = 99.99
while price > 7.74:
price = get_price()
time.sleep(5)
您需要更改get_price
函数以返回浮点数,或使用float()
我甚至做了一个小测试功能,以确保它与睡眠功能一起工作。
price = 99.99
while price > 7.74:
price += 1
time.sleep(5)
修改: Updated based on comments.
if price_now == 'Y':
print(get_price())
else:
price = 0.0
# While price is lower than 7.74 continue to check for price changes.
while price < 7.74:
price = get_price()
time.sleep(5)