”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么在 Python 中“11”== True 中的“1” 计算结果为 False?

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

发布于2024-11-13
浏览:585

Why Does \

Python 中的运算符优先级难题:揭开 'in' 和比较的神秘面纱

使用 Python 的 'in' 运算符和比较观察到的令人困惑的行为对比让很多人感到困惑。但在表面之下,存在着运算符优先级和表达式链接之间微妙的相互作用。

运算符优先级决定了表达式中运算的计算顺序。在 Python 中,“in”和比较运算符(例如“==”)具有相同的优先级。因此,它们是从左到右处理的。

但是,当涉及链式表达式时,情况会变得更加复杂。当尝试将“in”运算的结果与另一个值进行比较时,会出现一个常见的陷阱。考虑以下示例:

'1' in '11' == True

令人惊讶的是,该表达式的计算结果为 False。原因在于“in”和“==”的链接。该表达式被有效解析为:

('1' in '11') and ('11' == True)

'in'运算符验证是否为'1'是“11”的成员,结果为 True。然而,第二个比较“11”== True,结果为 False。因此,整个表达式的计算结果为 False。

要获得所需的 True 值,必须显式更改优先顺序。这可以使用括号来实现:

('1' in '11') == True

通过将 'in' 操作括在括号中,表达式在其内部计算与 True 进行比较之前的范围。这种改变会产生预期的 True 结果。

理解运算符优先级和链接对于破译复杂 Python 表达式的行为至关重要。它使开发人员能够预测操作顺序并避免意外的陷阱。

最新教程 更多>
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-04-30
  • MySQL中如何保持UTF8编码的表格输出格式?
    MySQL中如何保持UTF8编码的表格输出格式?
    在使用包含非英语字符的MySQL数据库时,请使用MySQL命令行表达式输出格式格式化,而在切换到utf8编码时,表格查询结果的输出格式可能会中断。本文提供了解决此格式问题的综合指南。简短答案 使用-default-character-character-set = utf8选项将mysql cli...
    编程 发布于2025-04-30
  • 如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    使用http request 上传文件上传到http server,同时也提交其他参数,java.net.net.urlconnection and Multipart/form-data Encoding是普遍的。 Here's a breakdown of the process:Mu...
    编程 发布于2025-04-30
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-04-30
  • 如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求模拟浏览器行为,以及伪造的用户代理提供了一个用户 - 代理标头一个有效方法是提供有效的用户式header,以提供有效的用户 - 设置,该标题可以通过browser和Acterner Systems the equestersystermery和操作系统。通过模仿像Chro...
    编程 发布于2025-04-30
  • SQL Server 2008整数时间转换为HH:MM:SS:00格式方法
    SQL Server 2008整数时间转换为HH:MM:SS:00格式方法
    Converting Integer Time to HH:MM:SS:00 Format in SQL Server 2008In SQL Server 2008, converting an integer time value to the HH:MM:SS:00 format involve...
    编程 发布于2025-04-30
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-04-30
  • 如何从2D数组中提取元素?使用另一数组的索引
    如何从2D数组中提取元素?使用另一数组的索引
    Using NumPy Array as Indices for the 2nd Dimension of Another ArrayTo extract specific elements from a 2D array based on indices provided by a second ...
    编程 发布于2025-04-30
  • Python学习日记:For循环与If条件语句的实践
    Python学习日记:For循环与If条件语句的实践
    句法: 对于序列的变量 例子: txt ='1234' 对于txt中的num: 打印(num,end ='') 输出: 1 2 3 4 如果条件: if语句通过检查表达式来查看是否满足条件并根据获得的输出返回值。 句法: 如果条件: 如果条件为真 ...
    编程 发布于2025-04-30
  • Java中假唤醒真的会发生吗?
    Java中假唤醒真的会发生吗?
    在Java中的浪费唤醒:真实性或神话?在Java同步中伪装唤醒的概念已经是讨论的主题。尽管存在这种行为的潜力,但问题仍然存在:它们实际上是在实践中发生的吗? Linux的唤醒机制根据Wikipedia关于伪造唤醒的文章,linux实现了pthread_cond_wait()功能的Linux实现,利用...
    编程 发布于2025-04-30
  • 如何使用PHP将斑点(图像)正确插入MySQL?
    如何使用PHP将斑点(图像)正确插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call ...
    编程 发布于2025-04-30
  • 为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    网格超过身体,用100%grid-template-columns 为什么在grid-template-colms中具有100%的显示器,当位置设置为设置的位置时,grid-template-colly修复了?问题: 考虑以下CSS和html: class =“ snippet-code”> g...
    编程 发布于2025-04-30
  • Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    在ASP.NET async void void async void void void void void的设计无需返回asynchroncon而无需返回任务对象。他们在执行过程中增加未偿还操作的计数,并在完成后减少。在某些情况下,这种行为可能是有益的,例如未期望或明确预期操作结果的火灾和...
    编程 发布于2025-04-30
  • 查找当前执行JavaScript的脚本元素方法
    查找当前执行JavaScript的脚本元素方法
    如何引用当前执行脚本的脚本元素在某些方案中理解问题在某些方案中,开发人员可能需要将其他脚本动态加载其他脚本。但是,如果Head Element尚未完全渲染,则使用document.getElementsbytagname('head')[0] .appendChild(v)的常规方...
    编程 发布于2025-04-30
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-04-30

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3