0

在pythona中是:

a = "XPZC"

为什么False在python中跟随?

(str(a)[:2] == ("YP" or "XP"))
4

2 回答 2

9

这是因为("YP" or "XP")解析为,"YP"因为它要求返回是否"YP""XP"解析为True

在这种情况下,“或”是短路的(因为"YP"is not False"XP"所以不评估)。它返回的非 False 值"YP"是..."YP"

a[:2]等于XP。此外,您不需要调用str(),因为a它是一个字符串。

>>> a = "XPZC"
>>> a[:2]
'XP'
>>> "YP" or "XP"
'YP'

您可能想使用in

>>> a[:2] in ("YP", "XP")
True

或者,只需检查两个条件or

>>> s = a[:2]
>>> s == "YP" or s == "XP"
True
于 2013-09-25T22:23:45.563 回答
1
(str(a)[:2] in ["YP", "XP"])

"YP" or "XP"返回'YP'

于 2013-09-25T22:23:33.250 回答