我正在写一个程序中的while循环。它从网站获取交易数据并生成响应。它只要没有来自站点的事务就会运行,但是当它从站点获取结果时,它会响应然后停止继续循环。任何意见都表示赞赏。
while True:
atran = getatran()
ntid = getntid()
if (ntid != otid and ntid != "-1"):
otid = ntid
tlidfile = open('last_transaction_id.txt', 'w')
tlidfile.write(str(otid))
tlidfile.close()
for x in range(len(atran['transactions'])) :
amount = atran['transactions'][x-1]['amount']
currency = atran['transactions'][x-1]['currency']
note = atran['transactions'][x-1]['note']
if note[:14] == "Transfer from:":
sender = note[15:]
if (sender == "satoshi4free") or (sender == "rabbit") or (sender == "mehbot") or (currency != 17): pass
else: flip(currency,amount,sender)
print "New: " + str(ntid)
print "Old: " + str(otid)
sleep(1)
“打印”新:“'和'打印”旧:“'声明被添加为故障排除措施。巧合的是,当ntid!=“ - 1”表示循环停止时。但是,循环至少通过'print“Old:”'语句完成,我认为是'sleep'语句。
我有一个类似的功能,可以获取消息并响应它们。它完美地运作。它如下:
while(condition == True):
amsg = getamsg()
nid = getnid()
if (nid != oid and nid != "-1"):
oid = nid
try:
for x in range(len(amsg['message_list'])) :
msg = amsg['message_list'][x-1]['msg']
pm = amsg['message_list'][x-1]['me']
sender = amsg['message_list'][x-1]['by']
if (msg.lower() == 'ping'):
condition = pong()
sleep(1)
if (msg.lower() == 'help'):
condition = helper()
sleep(1)
if (msg.lower() == 'luckydoge'):
condition = lucky()
sleep(1)
except (TypeError,KeyError):
pass
sleep(1)
答案 0 :(得分:0)
我认为标题你的问题会更好:
为什么我的while循环"挂起"?
你显然有一些东西悬而未决,要推断它是什么,你需要在每一行(最简单)上添加print
,或者更难(除非你有一个可以帮助你的IDE) :使用调试器逐步执行它,或通过分析器运行它。
我认为尽可能直接回答问题,但没有足够的信息为您提供更具体的推论。