将一个变量赋给另一个变量或第三个变量b

2024-06-07 22:57:46 发布

您现在位置:Python中文网/ 问答频道 /正文

最近我在python中遇到了以下代码片段:

a = 'holy'
b = 'grail'
c = None
d = a or b or c

print(d) #prints holy

我以为它会打印True。因为bool(a) = Truebool(b) = True,和bool(c) = False,我认为这会简化为(True or True) or False,也就是True。然而,d被简单地分配给a。我对python是如何工作的有一个基本的误解吗?你知道吗

有人能解释一下到底发生了什么事吗?这些or是多余的吗?你知道吗


Tags: or代码nonefalsetrueprintsboolprint
2条回答

请参阅@heemayl的答案以获得解释。为了生成所需的内容,可以使用any,如果iterable的任何值是真的,则返回True。你知道吗

a = 'holy'
b = 'grail'
c = None
d = any([a, b, c])

print(d) # Now prints True

or链返回链中的第一个truthy值,如果前面的所有值都是false,则返回链中的最后一个值。你知道吗

因此,由于名字a包含一个真实值(空字符串是虚假的),因此or链返回该值。你知道吗

a = b = ''试试,你会发现a or b or c返回None(值c,即使它是假的)。你知道吗

相关问题 更多 >

    热门问题