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

如何让函数返回两个独立值?计算男女BAC值的多返回实现方法

实现方案

你不需要保留sex变量和对应的条件判断逻辑,直接分别计算男性、女性对应的两个BAC值,打包返回即可,完全可以规避sex变量带来的复杂度问题:

def calculate_bac_for_both_gender(drinks, Weight, Duration):
    # 提前定义两性对应的R系数
    R_MALE = 3.8
    R_FEMALE = 4.5
    # 提取公共计算项,避免重复计算
    time_deduction = 0.01 * (Duration / 40)
    # 分别计算两性BAC
    male_bac = (drinks / Weight * R_MALE) - time_deduction
    female_bac = (drinks / Weight * R_FEMALE) - time_deduction
    # 以字典格式返回结果,取值更直观
    return {
        "male_bac": round(male_bac, 4),
        "female_bac": round(female_bac, 4)
    }

调用示例

你直接传入饮酒量、体重、时长三个参数即可,无需传入性别参数:

# 示例:饮酒5份,体重70kg,饮酒后时长120分钟
result = calculate_bac_for_both_gender(drinks=5, Weight=70, Duration=120)
print(result)
# 输出样例:{'male_bac': 0.2414, 'female_bac': 0.2914}

可扩展优化写法

如果后续需要新增其他群体的R系数,你可以把R系数统一放到配置字典中批量计算,无需重复编写计算逻辑:

def calculate_all_bac(drinks, Weight, Duration):
    # 所有群体的R系数统一配置
    r_config = {
        "男性": 3.8,
        "女性": 4.5
    }
    time_deduction = 0.01 * (Duration / 40)
    res = {}
    for group, r_val in r_config.items():
        res[group] = round((drinks / Weight * r_val) - time_deduction, 4)
    return res

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:39:00