基础计算器功能异常求助:代码无输出且未调用指定函数
解决你的基础计算器无输出/函数不执行问题
你的代码里存在几个关键逻辑和语法问题,导致程序没按预期运行,我来逐个拆解并给你修正方案:
主要问题分析
- 无用的类定义:你写了
calculator_class但完全没实例化它,而且类内部直接写print语句——这些print会在类定义时就执行,但这根本不是类的正确用法,反而打乱了程序流程,这里完全不需要类。 - 执行顺序颠倒:你先调用了
userchoice(),但此时usernumber1和usernumber2还没让用户输入,就算走到运算函数那一步,也会因为找不到变量报错。 userchoice函数语法错误:return后面直接跟if分支是非法语法,return只能返回值,不能直接嵌套代码块;而且你判断乘法/除法时用了小写(multiplication/division),但提示用户输入的是大写开头的选项,会导致匹配失败。- 函数拼写错误:乘法函数定义写成了
multipliction(少了一个字母i),调用时却用的是multiplication,会触发"找不到函数"的错误。 - 冗余逻辑:
invalid_choice本身已经包含print语句,你还用print(invalid_choice()),会额外输出一个None(因为函数没有返回值)。
修正后的完整代码
print("欢迎来到我的基础计算器程序") print("在本程序中,您将先被要求输入想要执行的运算功能,") print("然后选择两个数字,程序会对这两个数字执行相应的数学运算") # 获取用户选择的运算类型 def get_operation(): print("请输入以下选项选择运算功能:") print("Addition(加法)") print("Subtraction(减法)") print("Multiplication(乘法)") print("Division(除法)") # 循环直到用户输入有效选项 while True: choice = input().strip() if choice in ["Addition", "Subtraction", "Multiplication", "Division"]: return choice else: print("您未选择有效选项,请重试") # 获取用户输入的两个数字 def get_calc_numbers(): print("请选择两个数字进行计算") num1 = int(input("请输入第一个数字:")) num2 = int(input("请输入第二个数字:")) return num1, num2 # 运算函数,接收数字作为参数(避免全局变量依赖) def addition(num1, num2): print("A D D I T I O N(加法)") print("正在计算...") return num1 + num2 def subtraction(num1, num2): print("S U B T R A C T I O N(减法)") print("正在计算...") return num1 - num2 def multiplication(num1, num2): print("M U L T I P L I C A T I O N(乘法)") print("正在计算...") return num1 * num2 def division(num1, num2): print("D I V I S I O N(除法)") print("正在计算...") # 增加除数不为0的判断,避免运行时错误 if num2 == 0: return "错误:除数不能为0" return num1 / num2 # 主程序流程 if __name__ == "__main__": selected_op = get_operation() num1, num2 = get_calc_numbers() # 根据选择执行对应运算 if selected_op == "Addition": result = addition(num1, num2) elif selected_op == "Subtraction": result = subtraction(num1, num2) elif selected_op == "Multiplication": result = multiplication(num1, num2) elif selected_op == "Division": result = division(num1, num2) print(f"计算结果:{result}")
修正说明
- 重新梳理了程序流程:先选运算类型→再输入数字→最后执行计算,完全符合你预期的逻辑。
- 去掉了无用的类,用函数拆分功能,代码结构更清晰易维护。
- 运算函数改为接收参数传递,避免全局变量依赖,更符合Python编码规范。
- 增加了循环判断用户输入的运算类型,确保用户输入有效选项后才继续。
- 修复了拼写错误,统一了选项的大小写匹配规则。
- 给除法增加了除数不为0的判断,避免程序崩溃。
内容的提问来源于stack exchange,提问作者Vevret
相关产品推荐
相关产品推荐

