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

如何为100名学生生成随机体重身高并循环计算BMI及状态?

问题解决与代码修正

需求明确

你需要完成的任务:

  • 给100名学生生成100-300磅的随机体重
  • 计算每位学生的BMI值及对应的健康状态
  • 确认是否需要生成随机身高(英尺+英寸)并实现该功能

你的代码问题

你写的代码有几个明显问题:

  • 不需要用range()包裹randint(),randint()本身就返回单个随机整数,range()是用来生成序列的
  • 多处缺少右括号,语法错误会导致代码无法运行
  • 身高的生成逻辑没问题,但变量赋值方式错误

完整可运行代码

先导入random模块,结合你已有的BMI状态函数,完整实现如下:

import random

# 替换成你自己的BMI状态判断函数
def get_bmi_status(bmi):
    if bmi < 18.5:
        return "体重过轻"
    elif 18.5 <= bmi < 24.9:
        return "正常体重"
    elif 25 <= bmi < 29.9:
        return "超重"
    else:
        return "肥胖"

# 循环处理100名学生
for student_num in range(1, 101):
    # 生成100-300磅的随机体重
    weight = random.randint(100, 300)
    # 生成随机身高:1-6英尺,0-11英寸(12英寸=1英尺,所以英寸取0-11更合理)
    feet = random.randint(1, 6)
    inches = random.randint(0, 11)
    # 转换为总英寸数
    total_height_inches = feet * 12 + inches
    # 计算BMI(703是磅转千克、英寸转米的转换系数)
    bmi = 703 * weight / (total_height_inches ** 2)
    # 保留两位小数,结果更清晰
    bmi = round(bmi, 2)
    # 获取状态
    status = get_bmi_status(bmi)
    
    # 输出每个学生的信息
    print(f"学生{student_num}: 体重{weight}磅,身高{feet}英尺{inches}英寸,BMI={bmi},状态:{status}")

关键说明

  1. 随机数生成:用random.randint(min, max)直接生成指定范围的整数随机数,这是生成单个随机值的正确方式
  2. 循环逻辑:range(1,101)会生成1到100的序号,刚好对应100名学生,循环内完成单个学生的体重、身高生成及BMI计算
  3. 身高处理:作业没给定固定身高,所以必须生成随机身高,先拆成英尺和英寸,再转换为总英寸数代入公式,符合BMI计算的单位要求
  4. BMI公式:你用的703*weight/height**2是正确的,这个系数专门用于英制单位(磅、英寸)转公制单位的BMI计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:15:42