在 Python "a==('a' or 'b')"的含义是什么?



看看Python上的这段代码:

a='a'
print(a==('a' or 'b'))
a='b'
print(a==('a' or 'b'))

输出将是:

True
False

你能解释一下为什么吗?

谢谢!

为了分解它,首先评估括号。 因此,"a" or "b"- "a"是真实的并返回自身。"b"永远不会被计算,因为非空字符串将始终是真实的。

为了更好地了解这一点,请在提示符中单独运行它

>>> ('a' or 'b') 
'a'

因此,您最终会得到'a' == 'a'- 这是真的

在第二个示例中,A 设置为"B",因此会发生同样的事情,只有"B"≠"A",因此它返回 false

@rm-vanda是正确的。

我相信使用列表或元组可以更好地找到您期望的行为:

>>> a = "b"
>>> a in ["a", "b"]
True

('a' or 'b')将始终解析为'a',因为'a'在布尔上下文中解析为True

x or y如果x为 True(= 不同于NoneFalse""(,)[]{}),则返回x的值,否则返回y的值。

当你有一个像'a' or 'b'这样的表达式时,它将返回第一个不False的值。话虽如此,在这两种情况下,表达式都将返回'a'

我假设你可以自己弄清楚其余部分,但第一个是True,因为你等同于'a' == 'a',而在第二个'b' == 'a'.

相关内容

  • 没有找到相关文章

最新更新