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

为什么Python3中bool(input())相加的运行结果总为2?

问题原因解析
  • bool() 函数的字符串转换规则不符合预期

Python 中对字符串做布尔转换时,仅判断字符串是否为空:只要是非空字符串,bool()返回值永远为True,和字符串的内容没有关系。
也就是说哪怕你输入的内容是"False",bool("False")的返回值依然是True,只有空字符串""转换后才是False。

  • input() 函数的读取逻辑和输入方式不匹配

每次调用input()只会读取完整的一行输入。如果你把两个值一次性输入在同一行,第一次调用input()会直接把整行内容全部读取赋值给x,第二次调用input()会等待你输入第二行内容,只要你第二次输入的内容不是空串,转换后的y也为True。

两个True相加的结果就是2,因此不管你输入的内容是True True、False False还是True False,最终输出结果都是2。

修复方案

如果你需要实现输入两个布尔值,输出对应求和结果的需求,可以参考以下代码:

# 单次读取一行输入,拆分出两个输入值
val1, val2 = input().split()
# 根据字符串内容判断对应的布尔值
x = val1.strip() == 'True'
y = val2.strip() == 'True'
print(x + y)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:09:04