在 if 函数中比较的列表

Lists compared in a if function

enter image description here

>>> if LIST[2] == "a" or "A":
    print("Yes")

Yes

>>> LIST[2]
'l'

有人可以解释一下吗?

我正在尝试比较列表中的项目以启动功能。但是 Python 告诉我 "l" == "a" or "A"

是不是和代码中的or有关。

你说得对,它与 or 有关。我假设您想查看 LIST[2] 是否等于 "a" 或 "A"。正确的方法是 if LIST[2] == "a" or LIST[2] == "A"if LIST[2] in "aA"

所以这是您的代码中实际发生的事情:

if LIST[2] == "a" or "A": 等同于 if (LIST[2] == "a") or "A"(LIST[2] == "a") 为假。但是 or 与字符串仍然是一个有效的操作!如果 x 为真,x or "A" 将计算为 x,如果 x 为假,则计算为 "A"。由于 (LIST[2] == "a") 为假,or 给出 "A",结果为 if "A":。 Python 认为所有非空字符串为真,空字符串 "" 为假。所以,"A"被认为是真的,if里面的语句被执行。