You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyCharm比较两个and逻辑表达式时返回错误布尔值问题咨询

问题原因说明

你编写的代码存在括号位置错误,不是PyCharm的故障。

  • 首先明确:print()是Python内置函数,执行后返回值固定为None,你当前的代码写法仅将逻辑运算符左侧的表达式传入了print(),仅打印了左侧表达式的结果,整个逻辑运算的最终结果并没有被打印输出。
  • 以你反馈异常的print( 4 < 5) and (9 < 6)为例,实际执行顺序是:
    1. 先执行print(4 < 5),打印True,该函数调用返回None
    2. 再执行None and (9 < 6),运算结果为None,但你没有打印这个结果,所以你误以为整个表达式返回了True,实际你看到的只是左侧4 < 5的输出值。
  • 原生Python交互环境(REPL)下你直接输入(4 < 5) and (9 < 6)能得到正确结果,是因为REPL会自动打印最后一行表达式的返回值;如果你在REPL中输入和PyCharm中完全相同的代码,会先打印True,再输出None,和PyCharm运行逻辑完全一致,只是你没有注意到REPL输出的第二行返回值。
修复方案

把整个布尔表达式都放入print()的括号内即可,正确代码如下:

print( (4 < 5) and (5 < 6) )
print( (4 < 5) and (9 < 6) )
print( (1 == 2) or (2 == 2) )

运行后会输出预期的True、False、True,所有环境下运行结果一致。

内容的提问来源于stack exchange,提问作者trev84

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:36:03