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
相关产品推荐
相关产品推荐

