Python简易计算器调用totalresult函数报参数数量错误该如何修复?
修复说明
直接报错原因
你遇到的TypeError报错是因为定义totalresult函数时没有声明形参,但调用时传入了2个实参,参数数量不匹配导致报错。
其他隐藏逻辑问题
- 函数内部直接调用全局变量,封装逻辑不规范,存在大量重复的
int()类型转换冗余代码 - 减法逻辑错误:
user_number2 - int(user_number2)的计算结果永远为0,不符合减法需求 - 除法逻辑错误:误用
while循环会触发死循环,user_number2 / int(user_number2)的计算结果永远为1 - 减法分支误用
while而非if判断,输入减号运算符会触发死循环 - 除法分支缩进错误,被嵌套在乘法判断逻辑内,永远不会被执行
- 重复调用函数、重复写运算逻辑,代码冗余度高
- 没有做除数为0的异常处理,输入除数为0会直接崩溃
修复后完整代码
def totalresult(num1, num2, operator): if operator == "+": return num1 + num2 elif operator == "-": return num1 - num2 if num1 > num2 else num2 - num1 elif operator == "*": return num1 * num2 elif operator == "/": # 保证大数除以小数,同时处理除数为0的情况 divisor = num1 if num1 > num2 else num2 dividend = num2 if num1 > num2 else num1 if dividend == 0: print("错误:除数不能为0") return 0 return int(divisor / dividend) else: print("输入的运算符不合法,请输入 +、-、*、/") return 0 # 接收用户输入 user_number1 = int(input("请输入第一个数字:")) user_number2 = int(input("请输入第二个数字:")) user_operator = input("请输入运算符(支持+、-、*、/):") # 调用函数获取结果 total_result = totalresult(user_number1, user_number2, user_operator) print(f"运算结果为:{total_result}") # 按结果大小输出对应提示 if total_result > 100: print("The result is more than 100.") else: print("The result is less than 100.")
内容的提问来源于stack exchange,提问作者NeuroZ
相关产品推荐
相关产品推荐

