我遇到了一个跟随Python(2.7.3)脚本的奇怪问题。 有时例如a = True和b = False后续if子句的计算结果为False,其中的代码将不会运行。
当a,b或两者都为True时,它总是第一次起作用,但有时候稍后它会失败。
任何人都可以解释这种行为以及如何避免它吗?谢谢。
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)
答案 0 :(得分:2)
它可能与Python认为是" True"的价值有关。有时这些规则并不直观;您可能需要查看有关该主题的文档。为了帮助调试,也许您可以尝试而不是
print a
print b
类似
print a
if a:
print "a is True"
print b
if b:
print "b is True"
这至少应该确认你这是真/假是*实际上是*真/假。