Python "if X == Y and Z" 语法

15 投票
8 回答
117771 浏览
提问于 2025-04-16 03:38

这段代码:

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

不,你需要重复这个表达式。它会被当作两个独立的条件来判断,并检查这两个条件是否都为真:

  1. x == y
  2. 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

撰写回答