为什么'1 in \'11\' == True\”在 Python 中返回 TypeError?

Susan Sarandon
发布: 2024-11-01 14:33:29
原创
991 人浏览过

Why Does

理解 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!