MBI计算器
本帖最后由 ShireyFen 于 2026-8-28 20:19 编辑from colorama import Fore, Style, init
importtime
init(autoreset=True)
#自定义函数-引导用户输入正确的数据(带错误处理)
def inputdate(date):
while True: #循环至转换成功为止
#捕捉异常
try:
num = float(input(date))
if num <= 0:
print(Fore.RED+"不能为零或小于零,请重新输入")
continue
print(Fore.GREEN+"成功输入,正在等待")
return num
except ValueError:
print(Fore.RED+"输入错误,请重新输入(请输入数字)")
#自定义函数-分类用户的MBI类型(定义BMI评估函数)
def judge_the_type(outcome):
bmi_low = 18.5
bmi_high = 23.9
#初始化数据
judge_outcome = {
"judge_type" :"", #评估结果
"risk":0.0, #危险度
"diff":0.00, #相差
"is_normal":False
}
#区间定义:(上限,下限,分类,危险度)
criterion = [
(0, 18.5, "体重偏瘦,建议加强营养", 0.2),
(18.5, 23.9, "体重正常", 0), # 注意上限包含
(23.9, 25, "体重偏胖(超重),注意饮食和运动", 0.5),
(25, 30, "肥胖初期,请尽快控制", 1),
(30, 35, "一级肥胖,建议咨询医生", 2),
(35, 40, "二级肥胖", 3),
(40, float('inf'), "三级肥胖", 6)
]
for low,high,judge_type,risk in criterion: #for循环依次处理
if low<=outcome<=high:
judge_outcome["judge_type"] = judge_type#导入分类
judge_outcome["risk"] = risk #导入危险度
if 18.5<=outcome<=23.9:
judge_outcome["is_normal"] = True #定义健康区间由于后续
if outcome<18.5:
judge_outcome["diff"] = bmi_low-outcome #导入相差
elif outcome>23.9:
judge_outcome["diff"] = outcome-bmi_high #导入相差
break #找到区间退出
return judge_outcome
#引用函数收集数据
User_hight=inputdate("请输入身高(单位:m):")
User_weight=inputdate("请输入你的体重(单位:kg):")
#计算
User_BMI=User_weight/User_hight**2
#定义结果
judge_outcome= judge_the_type(User_BMI)
print(Fore.YELLOW+"数据收集完成,正在计算。。。")
time.sleep(2)
print(Fore.BLUE+"\n正在输出结果")
print(Fore.BLACK+"***********************************************")
time.sleep(4)
#输出
print(Fore.GREEN+f"你的BMI值为{User_BMI}") #输出bmi值
print(judge_outcome["judge_type"]) #输出评估结果
if judge_outcome["is_normal"]!=True : #健康区间不输出以下
time.sleep(1)
print(Fore.RED+f"危险度{judge_outcome["risk"]}")
ifjudge_outcome["diff"] != 0:#危险度为零不输出以下
if User_BMI<18.5:
time.sleep(1)
print(Fore.YELLOW+f"你与MBI正常范围下限相差{judge_outcome["diff"]}")#输出相差
else:
time.sleep(1)
print(Fore.YELLOW+f'你与MBI正常范围上限相差{judge_outcome["diff"]}')#输出相差
time.sleep(4)
print(Fore.GREEN+"已显示所有结果\n程序已结束\n数据依照MBI国际标准") #结束我也是终于完成完善我的程序了 恭喜鱼油完成自己的程序!666
不过图片是本地路径(file:///...),论坛上其他鱼油是看不到的,建议上传到论坛附件或图床哦。
你写的应该是 BMI计算器 吧?如果是的话,核心公式就是:
BMI = 体重(kg) / (身高(m) ** 2)
给程序加几个小功能会更完善:
[*]输入校验:身高体重必须大于0,防止误输入。
[*]单位换算:支持厘米/米、斤/公斤自动转换。
[*]结果分类:根据BMI值给出偏瘦、正常、偏胖等提示。
继续加油,期待你分享更多作品!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]