为什么在 Python 中 \'11\' == True 中的 \'1\' 计算结果为 False?

Patricia Arquette
发布: 2024-10-30 11:38:00
原创
651 人浏览过

Why Does '1' in '11' == True Evaluate to False in Python?

Python:运算符优先级与“in”和比较运算符的混淆

在 Python 中,比较序列成员资格和相等性可能会导致意外结果,因为“in”和比较运算符的优先级相同。当遇到不带括号的表达式时,这些运算符将从左到右计算。

例如:

'1' in '11' == True  # Evaluates to False
登录后复制

此表达式解释为:

('1' in '11') and ('11' == True)
登录后复制

由于“11”不等于 True,因此整个表达式的计算结果为 False。为了达到预期结果(True),需要使用括号:

'1' in '11' == True  # Evaluates to True
登录后复制

但是,如果将括号放在相反的操作数周围:

'1' in ('11' == True)  # TypeError
登录后复制

则会引发 TypeError,因为 '11'等于 True,这是一个布尔值,因此不可迭代。为了避免此错误,请确保将“in”运算符与可迭代对象一起使用。

了解 Python 中的运算符优先级和链接对于编写按预期运行的代码至关重要。具有相同优先级的运算符从左到右进行计算,链接允许您在一行中执行多个计算。通过仔细考虑运算符优先级和链接,您可以避免意外结果并编写更高效的代码。

以上是为什么在 Python 中 \'11\' == True 中的 \'1\' 计算结果为 False?的详细内容。更多信息请关注PHP中文网其他相关文章!

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