我希望一个空列表将test值设为False,但我有点困惑,为什么在如下示例中测试值时,包含对象的列表的引用也会报告为False:
>>> weapon = []
>>> weapon == True
False
>>> weapon.append("sword")
>>> weapon == True
False
>>> weapon
['sword']
如果weapon = []
为假,为什么weapon = ['sword']
也会为假?根据文档http://docs.python.org/release/2.4.4/lib/truth.html,这应该是真的。我对这件事的理解中遗漏了什么?你知道吗
如果要直接比较,需要使用
bool()
当您使用
if
或while
测试条件时,到bool
的转换是隐式完成的你应该检查一下
当您这样做时:
需要注意的关键是,在
if
子句中测试的任何内容都被强制为布尔值。要明确:要将苹果与苹果进行比较,则不希望将
["sword"]
与True
进行比较。相反,您希望比较bool(["sword"])
和True
:相关问题 更多 >
编程相关推荐