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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:50:28