python if(true或false)有时会评估为false



我遇到了一个奇怪的问题,即以下python(2.7.3)脚本。有时,例如a = true and b = false随后的if-lause评估为false,内部的代码将不会运行。

它总是第一次起作用A,B或两个都是正确的,但有时以后会随机失败。

谁能解释这种行为以及如何避免这种行为?谢谢。

while True:
    a = b = False
    a = func1()   # Returns True or False
    b = func2()   # Returns True or False
    print a       # Just for debugging..
    print b       # Just for debugging..
    if(a or b):
        print "Here we are.."
        func3()   # It may take hours until we return from here
    time.sleep(45)

它可能与python认为是" true"的值有关。有时这些规则不是直观的。您可能需要检查有关该主题的文档。为了帮助调试,也许您可以尝试而不是

print a
print b

之类的东西
print a
if a:
    print "a is True"
print b
if b:
    print "b is True"

这至少应该确认您是正确的/错误是*实际/fals/fals。

相关内容

最新更新