吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 654|回复: 14
收起左侧

[学习记录] python:计算身高体重指数bmi

  [复制链接]
zjg121 发表于 2024-4-17 11:28
本帖最后由 zjg121 于 2024-4-17 15:07 编辑

输入身高和体重,可以得到bmi。
[Python] 纯文本查看 复制代码
def bmi(score):
    if score >= 32:
        return '严重肥胖'
    elif score >= 28:
        return '肥胖'
    elif score >= 25:
        return '过重'
    elif score >= 18.5:
        return '正常'
    elif score >= 15:
        return '过轻'
    else:
        return '严重过轻'


# 测试示例
sg = input('请输入身高(米):')
tz = input('请输入体重(千克):')
score = float(tz) / float(sg) / float(sg)
print(f'根据您的身高({sg}m)和体重({tz}kg)可得身高体重指数bmi为:{score:.2f},等级为:{bmi(score)}')  # 输出





[Python] 纯文本查看 复制代码
height = float(input('请输入身高(米): '))
weight = float(input('请输入体重(千克): '))

bmi = weight / (height ** 2)

bz = [15.5, 18.5, 25, 28, 32]
ms = ['严重过轻', '过轻', '正常', '过重', '肥胖', '严重肥胖']
for i in bz:
    if bmi < i: a = '您的BMI指数为%.1f, 属于%s' % (bmi, ms[bz.index(i)])
if a:
    print(a)
else:
    print('您的BMI指数为%.1f, 属于%s' % (bmi, ms[-1]))

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
qsj521521 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wjbg2022 发表于 2024-4-17 11:37
还可以出一个字典的版本,加油!
wjbg2022 发表于 2024-4-17 11:40
本帖最后由 wjbg2022 于 2024-4-17 11:42 编辑

[Python] 纯文本查看 复制代码
height = float(input('请输入身高(米): '))
weight = float(input('请输入体重(千克): '))

bmi = weight / (height ** 2)

bmi_status = {
    (0, 15.5): '严重过轻',
    (15.5, 18.5): '过轻',
    (18.5, 25): '正常',
    (25, 28): '过重',
    (28, 32): '肥胖',
    (32, float('inf')): '严重肥胖'
}

for (lower, upper), status in bmi_status.items():
    if lower <= bmi < upper:
        print('您的BMI指数为%.1f, 属于%s' % (bmi, status))
        break
else:
    print('您的BMI指数为%.1f, 属于严重肥胖' % bmi)

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
lccccccc + 2 + 1 我很赞同!

查看全部评分

dramatic36 发表于 2024-4-17 12:03
wkdxz 发表于 2024-4-17 12:12
wjbg2022 发表于 2024-4-17 11:40
[mw_shl_code=python,true]height = float(input('请输入身高(米): '))
weight = float(input('请输入体 ...

这个解包写法很简洁,赞
schoolclub 发表于 2024-4-17 13:22
height = float(input('请输入身高(cm): '))
weight = float(input('请输入体重(kg): '))

bmi = weight / (height ** 2)*10000

bmi_status = {
    (0, 15.5): '严重过轻',
    (15.5, 18.5): '过轻',
    (18.5, 25): '正常',
    (25, 28): '过重',
    (28, 32): '肥胖',
    (32, float('inf')): '严重肥胖'
}

for (lower, upper), status in bmi_status.items():
    if lower <= bmi < upper:
        print('您的BMI指数为%.1f, 属于%s' % (bmi, status))
        break
else:
    print('您的BMI指数为%.1f, 属于严重肥胖' % bmi)


给你把代码优化了下。你这个输入身高是米确实不太符合习惯
backaxe 发表于 2024-4-17 13:24
学习了,新的知识又增加了
不知道改成啥 发表于 2024-4-17 13:38
翻译了个js版本,我的体重竟然是严重过轻。。
[JavaScript] 纯文本查看 复制代码
const height = parseFloat(prompt('请输入身高(米): '));
const weight = parseFloat(prompt('请输入体重(千克): '));

const bmi = weight / (height ** 2);

const bz = [15.5, 18.5, 25, 28, 32];
const ms = ['严重过轻', '过轻', '正常', '过重', '肥胖', '严重肥胖'];
let a;
for (let i of bz) {
    if (bmi < i) {
        a = `您的BMI指数为${bmi.toFixed(1)}, 属于${ms[bz.indexOf(i)]}`;
        break;
    }
}

if (a) {
    console.log(a);
} else {
    console.log(`您的BMI指数为${bmi.toFixed(1)}, 属于${ms[ms.length - 1]}`);
}
pastorcd 发表于 2024-4-17 13:45
谢谢楼主分享
ixiaobaii 发表于 2024-4-17 13:46
感谢分享哦
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-30 13:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表