Python计算器加法函数输出异常(5+5得55)求助及代码优化建议
问题原因
input()函数获取的内容默认是字符串类型,当你输入5和5时,变量x和y实际是字符串"5"和"5"。字符串的+操作是拼接行为,所以"5"+"5"的结果就是"55",而非数值加法的10。
解决方法
需要把输入的字符串转换为数值类型,可根据需求选择整数int()或浮点数float()(浮点数支持小数输入)。修改输入部分代码:
x = float(input("Enter number:")) y = float(input("Enter number:"))
转换后x和y变为数值类型,执行x+y时会进行算术加法,得到预期的10。
代码优化建议
- 函数优先返回计算值而非直接打印,提升函数复用性:
def add(x, y): return x + y def subtract(x, y): return x - y def multiply(x, y): return x * y def divide(x, y): if y == 0: return "Error: Division by zero" return x / y - 给除法增加零值判断,避免触发除零错误;
- 用字典映射操作与对应函数,简化条件判断逻辑:
operations = { "add": add, "subtract": subtract, "multiply": multiply, "divide": divide } if operation in operations: result = operations[operation](x, y) print(result) else: print("Invalid operation") - 增加输入合法性校验,防止因输入非数字内容报错:
def get_number(prompt): while True: try: return float(input(prompt)) except ValueError: print("请输入有效的数字!") x = get_number("Enter number:") y = get_number("Enter number:")
内容的提问来源于stack exchange,提问作者MoRayhxn
相关产品推荐
相关产品推荐

