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

Python函数含return却输出None?茶饮价格计算函数问题排查

问题原因及修复方案

为什么函数返回None?

你的函数返回None主要有两个核心问题:

  1. 匹配目标错误:代码里的S、M、L、J是未定义的变量,而用户输入的是字符串(比如"S"),导致所有if/elif条件都不满足,函数执行完所有分支后无返回值,Python默认返回None。
  2. 无异常分支处理:如果用户输入的不是S/M/L/J(比如小写s、其他字符),所有条件都不命中,函数同样没有返回值,最终返回None。

修复后的代码

def CalculateTotal():
    strSize = input("Enter the size of tea (S)mall, (M)edium, (L)arge, (J)umbo: ").upper()
    
    if strSize == "S":
        return 2.99
    elif strSize == "M":
        return 3.59
    elif strSize == "L":
        return 4.09
    elif strSize == "J":
        return 4.99
    else:
        # 处理无效输入,避免返回None
        return "Invalid size entered"

关键修改说明

  • 将匹配目标改为字符串常量"S"、"M"等,修正未定义变量的错误。
  • 对用户输入调用.upper(),统一转为大写,兼容用户输入小写的情况(比如"s"也能匹配成功)。
  • 移除冗余的中间变量(如price1),直接返回浮点数类型的价格,更适合后续数值计算。
  • 添加else分支处理无效输入,明确返回提示信息,避免默认返回None。

内容的提问来源于stack exchange,提问作者user22823868

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:37:33