为什么这个while循环“挂起”?

时间:2014-05-31 13:22:27

标签: python while-loop

我正在写一个程序中的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)

1 个答案:

答案 0 :(得分:0)

我认为标题你的问题会更好:

  

为什么我的while循环"挂起"?

你显然有一些东西悬而未决,要推断它是什么,你需要在每一行(最简单)上添加print,或者更难(除非你有一个可以帮助你的IDE) :使用调试器逐步执行它,或通过分析器运行它。

我认为尽可能直接回答问题,但没有足够的信息为您提供更具体的推论。