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

如何简化Python中计算TDEE的自定义函数代码

TDEE计算代码优化方案

原代码的冗余问题主要来自重复定义逻辑相同的函数、提前计算所有场景的结果、多分支判断繁琐,可以通过系数与计算逻辑分离的思路优化,让代码更简洁易维护。

优化思路

  • 将不同活动等级对应的TDEE计算系数统一存在有序序列中,用活动等级作为索引直接取对应系数,不需要写多个重复函数
  • 仅保留一个通用计算函数,传入BMR和活动等级后单次计算对应结果,避免无用计算
  • 增加简单的输入合法性校验,避免输入不存在的活动等级时程序异常
  • 修正原代码的类型隐患:活动等级是离散整数值,不需要转为浮点数,规避浮点精度问题导致的分支匹配失败

优化后代码

# 活动等级对应系数:索引对应活动等级,0=久坐、1=轻度活动、2=中度活动,可按需扩展3=高强度活动、4=极高强度活动的系数1.725、1.9
ACTIVITY_FACTORS = [1.2, 1.375, 1.55]

def calc_tdee(bmr, activity_level):
    if 0 <= activity_level < len(ACTIVITY_FACTORS):
        return bmr * ACTIVITY_FACTORS[activity_level]
    raise ValueError("活动等级输入不合法,请输入合法的等级数值")

if __name__ == "__main__":
    bmr = float(input("BMR:"))
    activity_level = int(input("activitylevel:"))
    tdee = calc_tdee(bmr, activity_level)
    print("TDEE:", tdee)

优化点说明

  • 扩展性更强:后续如果需要新增活动等级、调整系数,只需要修改ACTIVITY_FACTORS列表即可,不需要改动核心计算逻辑和判断分支
  • 代码量更少:去掉了3个重复的计算函数,也不需要提前计算所有等级的TDEE值,运行效率更高
  • 可读性更好:系数统一集中定义,每个部分的作用清晰,维护成本更低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:15:39