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

输入正确答案11仍报错,这个短小Python程序的问题出在哪里?

错误原因

你代码的核心问题是混淆了字符串拼接和数值加法的运算逻辑,同时input()返回值的类型处理也不符合预期:

  • input()函数的返回值默认是字符串类型,你输入11时,num_in的实际值是字符串"11",不是整数11
  • 你将set_num转为了字符串"33",此时代码中的num_in + set_num执行的是字符串拼接操作,得到的结果是"1133",和字符串"44"永远不相等,所以判断分支永远走else
  • 另外你的业务逻辑本身也写反了:你预期是「输入值 + 33 = 44」,但代码写的判断逻辑是「输入值拼接33的字符串等于44的字符串」,和预期逻辑完全不匹配
修正后的代码
# 先把输入值转为整数,再做数值加法判断
num_in = int(input("what + 33 is 44?: "))
set_num = 33

if num_in + set_num == 44:
    print("Yes!")
else:
    print(f"{num_in} + {set_num} is not 44.")
遗漏的知识点
  • Python中+运算符的行为会随操作数类型变化:操作数为字符串时执行拼接,为数值类型(int/float)时才执行算术加法
  • input()函数无论输入什么内容,返回值永远是字符串类型,做数值计算前必须显式用int()或float()做类型转换
  • 不同类型的变量做运算或相等判断前,需要先统一类型,否则会得到不符合预期的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:48:02