理解 Python 中的运算符优先级:“in”与比较
在 Python 中,确定运算顺序对于计算表达式至关重要正确。运算符的优先级指定了它们的优先级,优先级较高的运算符首先被计算。
考虑以下表达式:
<code class="python">'1' in '11' ('1' in '11') == True</code>
两个表达式的计算结果均为 True,表明 'in' 运算符优先级低于比较运算符“==”。但是,在“in”表达式周围放置括号会改变求值顺序:
<code class="python">'1' in ('11' == True)</code>
此表达式会引发 TypeError,表明某些内容不太正确。要了解原因,让我们检查一下 Python 的运算符优先级。
根据 Python 文档,“in”和“==”具有相同的优先级。因此,Python 从左到右对它们进行计算。在本例中,Python 首先计算“11”中的“1”,结果为 True。但是,“== True”部分随后被计算为布尔表达式,从而导致 TypeError,因为布尔值无法迭代。
要解决此问题,您可以利用链接。链接允许将具有相同优先级的多个运算符组合在一起并从左到右进行评估。通过按如下方式添加括号,您可以强制首先计算 'in' 运算符:
<code class="python">'1' in '11' == True</code>
此表达式的计算结果为 False,这与您的期望一致。括号确保首先计算“in”运算符,结果为 True。然后将其与“==”表达式中的 True 进行比较,得到 False。
以上是为什么“1 in \'11\' == True\”在 Python 中返回 TypeError?的详细内容。更多信息请关注PHP中文网其他相关文章!