python if else没有按预期工作

时间:2014-10-31 17:18:13

标签: python

有人可以看看这里有什么问题:

dang=True
if [ dang == False ] :
    print ("False")
    print("Value of dang is %s"%dang)
else :
    print ("True")
    print("Value of dang is %s"%dang)

ding=True
if  ding == False  :
    print ("False")
    print("Value of ding is %s"%ding)
else :
    print ("True")
    print("Value of ding is %s"%ding)   

以下是结果

False
Value of dang is True
True
Value of ding is True

2 个答案:

答案 0 :(得分:4)

在第一个示例中,它表示它是False,因为您将检查放入列表([] - 因此它变为[False])。非空列表在Python中评估为布尔真值;因此if语句始终是正数,因为该条件将始终存在。要修复它,只需删除这些括号。

答案 1 :(得分:1)

在Python中,您不需要使用括号(更不用说方括号)来构造if语句。

在您的第一个示例中,您编写了if [ dang == False ] :,最终被简化为if [False],其评估为True,为非空列表。这意味着if语句通过,它的代码被运行,并且跳过下一个条件(如果有的话)。

[ dang == False ]创建了一个列表,而不是如何在Python中构建if,简单就是这样。