为什么';t Python逻辑不';你不总是评价得很糟糕吗?
在Python中,我非常习惯使用逻辑运算符为什么';t Python逻辑不';你不总是评价得很糟糕吗?,python,python-2.7,logical-operators,Python,Python 2.7,Logical Operators,在Python中,我非常习惯使用逻辑运算符和和或,并且有这样一种印象,即在运行时,它们只需使用左右值进行计算,并替换为True或False 我最近发现情况并非如此。考虑: >>> False or 10 10 我看到了用例。在这里,如果您有一个函数在出现故障时返回值或False,则上述函数允许您使用默认的回退值。但是使用和: >>> True and re.match("s", "s") <_sre.SRE_Match object at 0x19f9
和
和或
,并且有这样一种印象,即在运行时,它们只需使用左右值进行计算,并替换为True
或False
我最近发现情况并非如此。考虑:
>>> False or 10
10
我看到了用例。在这里,如果您有一个函数在出现故障时返回值或False
,则上述函数允许您使用默认的回退值。但是使用和:
>>> True and re.match("s", "s")
<_sre.SRE_Match object at 0x19f9098>
用Python文档的话说:
这有时很有用,例如,如果s是一个应该
替换为默认值
doc.因为除了布尔逻辑之外,和
和或
运算符还有其他用途。关于你的最后一个问题,我想我从来没有使用过bool
,除了在解释器中检查一些不熟悉的类型是否真实。
>>> bool(True and re.match("s", "s"))
True