Python "if X == Y and Z" 语法
这段代码:
if key == "name" and item:
和这段代码:
if key == "name" and if key == "item":
是一样的吗?如果是的话,我对《Dive Into Python》中的例子5.14感到很困惑。为什么key可以同时等于“name”和item?另外,“and item”是不是只是问item这个变量是否存在?
8 个回答
4
不,你需要重复这个表达式。它会被当作两个独立的条件来判断,并检查这两个条件是否都为真:
x == y
z
你可以查看一下Python的文档,里面有关于在Python中什么被认为是假的列表。
(不过有趣的是,与其他语言不同的是,下面这个:
if 3 < x < 6
是等价于
if x > 3 and x < 6
)
13
Manoj 讲得很好。这里有一些补充说明。
伪代码
if key == "name" or if key == "item":
应该是这样的:
if key == "name" or key == "item":
一个有趣的表达方式是:
if key in ("name", "item"):
不过这种方法更适合处理非常大的条件,特别是当你只想知道某个值是否等于列表中的任何一个值时。
34
if key == "name" and item:
的意思是 如果 (key 等于 "name") 并且 (item 的值为真)
。
要记住,(item 的值为真)
可以通过多种方式来判断。例如,if (key == "name") and []
这个条件会被判断为 False
。