🛠️ToolsShed

TDEE 计算器

计算您的每日总能量消耗和每日卡路里需求。

TDEE 计算器估算您的每日总能量消耗——考虑到您的基础代谢率 (BMR) 和体力活动水平,您的身体每天燃烧的总卡路里数。TDEE 是任何基于卡路里的饮食或健身计划的基础:吃少于 TDEE 会产生减重赤字,吃超过它会增重。

输入您的年龄、身高、体重、生理性别,并选择从久坐到非常活跃的活动水平。该工具使用 Mifflin-St Jeor 方程(对大多数成年人最有效的公式)计算 BMR,并乘以活动系数得出 TDEE。

TDEE 是估算值,不是保证——个人代谢有所不同。将其作为起点,追踪 2-3 周内的实际体重变化,并相应调整卡路里摄入量。一个常见方法是从 TDEE 中减去 500 卡路里,以实现每周约 0.5 千克的安全减重。

常见问题

代码实现

def mifflin_bmr(weight_kg, height_cm, age, sex):
    """
    Mifflin-St Jeor BMR formula (1990).

    Parameters:
        weight_kg  - body weight in kilograms
        height_cm  - height in centimetres
        age        - age in years
        sex        - 'male' or 'female'

    Returns BMR in kcal/day.
    """
    bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age
    bmr += 5 if sex.lower() == 'male' else -161
    return bmr

def tdee(weight_kg, height_cm, age, sex, activity_level='sedentary'):
    """
    Calculate Total Daily Energy Expenditure (TDEE).

    Activity multipliers (Mifflin-St Jeor):
        sedentary        1.2   (desk job, little/no exercise)
        light            1.375 (1-3 days/week exercise)
        moderate         1.55  (3-5 days/week exercise)
        active           1.725 (6-7 days/week hard exercise)
        very_active      1.9   (physical job + hard exercise)
    """
    multipliers = {
        'sedentary':   1.2,
        'light':       1.375,
        'moderate':    1.55,
        'active':      1.725,
        'very_active': 1.9,
    }
    bmr = mifflin_bmr(weight_kg, height_cm, age, sex)
    factor = multipliers.get(activity_level, 1.2)
    return bmr * factor

# Example: 30-year-old male, 80 kg, 180 cm, moderately active
bmr  = mifflin_bmr(80, 180, 30, 'male')
tdee_val = tdee(80, 180, 30, 'male', 'moderate')
print(f"BMR:  {bmr:.0f} kcal/day")
print(f"TDEE: {tdee_val:.0f} kcal/day")
print(f"Weight loss target (-500 kcal): {tdee_val - 500:.0f} kcal/day")
print(f"Muscle gain target (+250 kcal): {tdee_val + 250:.0f} kcal/day")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.