🛠️ToolsShed

日饮水量计算器

根据体重和活动量计算每日推荐饮水量。

饮水量计算器根据您的体重、活动水平和气候估算您每天应该喝多少水。适当的水分有助于肾脏功能、消化、关节润滑、体温调节和认知表现。即使是体重 1-2% 的轻度脱水也会损害注意力和体能。

输入您的体重、活动水平(久坐、适度活跃或非常活跃),以及您是否生活在炎热气候中或正在怀孕或哺乳。该工具以升和杯为单位计算您的每日用水目标,并为您提供如何在全天分配摄入量的实用指南。

"每天 8 杯水"的旧规则只是粗略估计。您的实际需求取决于您的体型、出汗量以及食物的含水量(水果和蔬菜贡献显著)。一个实用的现实检验是尿液颜色——淡黄色表示水分充足,深黄色表明您需要多喝水。

常见问题

代码实现

def daily_water_intake(weight_kg, activity_level='sedentary',
                        climate='temperate', exercise_hours=0):
    """
    Estimate daily water intake in litres.

    Parameters:
        weight_kg      - body weight in kilograms
        activity_level - 'sedentary' | 'light' | 'moderate' | 'active'
        climate        - 'temperate' | 'hot' | 'cold'
        exercise_hours - hours of exercise per day

    Returns recommended daily water intake in litres.
    """
    # Base: 35 mL per kg of body weight
    base_ml = weight_kg * 35

    # Activity adjustments (mL/day)
    activity_adj = {
        'sedentary': 0,
        'light':     300,
        'moderate':  600,
        'active':    900,
    }
    base_ml += activity_adj.get(activity_level, 0)

    # Exercise: ~500 mL per hour
    base_ml += exercise_hours * 500

    # Climate adjustments
    climate_adj = {'temperate': 0, 'hot': 750, 'cold': -250}
    base_ml += climate_adj.get(climate, 0)

    return round(base_ml / 1000, 2)  # convert to litres

def cups_from_litres(litres, cup_ml=250):
    """Convert litres to number of cups."""
    return round(litres * 1000 / cup_ml, 1)

# Examples
intake = daily_water_intake(70, 'moderate', 'temperate', 1)
print(f"Daily intake: {intake:.2f} L")
print(f"As cups (250 mL): {cups_from_litres(intake)}")

active = daily_water_intake(85, 'active', 'hot', 1.5)
print(f"Active in heat: {active:.2f} L")

Comments & Feedback

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