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

Python使用function和if else开发计算器结果不符合预期求助

问题排查

你的代码存在两处核心错误:

  • 变量类型不匹配导致判断逻辑永远不成立
    你定义了add = True为布尔值,而用户输入的question是字符串类型,你输入add后question的值为字符串"add","add"和布尔值True不可能相等,因此判断条件question == add永远返回False,直接进入else分支输出Invalid operator。
  • 函数无显式返回值导致额外输出None
    nor_cal函数内部仅执行打印操作,没有写return语句,Python中无显式return的函数默认返回None,你将函数调用结果赋值给result1后打印,就会多输出一行None。

修正后代码

value1 = float(input("Enter your first number:"))
value2 = float(input("Enter your second number:"))
question = input("choose mode:" )

def nor_cal(num1, num2):
    if question == "add":
        total = num1 + num2
        print("the total is: ")
        print(total)
        # 如果后续需要使用计算结果,可补充return total
    else:
        print("Invalid operator")

# 该函数不需要返回值,直接调用即可,无需赋值后打印
nor_cal(value1, value2)

运行验证

修改后输入2、3、add,输出结果如下:

Enter your first number:2
Enter your second number:3
choose mode:add
the total is: 
5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 03:24:03