python_let`s try it 6___BMI计算器

写一个BMI计算器

复制代码
BMI计算器
def bmi_calculator():
    """
    BMI计算器
    输入:身高(米)和体重(公斤)
    输出:BMI值和健康建议
    BMI = 体重 / (身高 ** 2)
    """
    # 你的代码
    pass

#=====写一个BMI计算器=====
def bmi_calculator():
    height=float(input("请输入你的身高: (米)"))
    weight=float(input("请输入你的体重: (公斤)"))
    BMI=weight/(height**2)
    if BMI<18.5:
        print("体重过低")
    elif 18.5<=BMI<=23.9:
        print("正常范围")
    elif 24.0<=BMI<=27.9:
        print("超重")
    elif BMI>=28.0:
        print("肥胖")
bmi_calculator()

问题点:

1.边界值处理(0或负数)

如果用户输入0或负数,程序虽然不会报错,但会给出体重过低或正常范围这种不合理的结论

加上校验

python 复制代码
#=====写一个BMI计算器=====
def bmi_calculator():
    height=float(input("请输入你的身高: (米)"))
    weight=float(input("请输入你的体重: (公斤)"))
    #输入校验
    if height<=0 or weight<=0:
        print("身高和体重必须为正数,请重新输入")
        return
    BMI=weight/(height**2)
    print(f"你的BMI值是{BMI}")
    if BMI<18.5:
        print("体重过低")
    elif 18.5<=BMI<=23.9:
        print("正常范围")
    elif 24.0<=BMI<=27.9:
        print("超重")
    elif BMI>=28.0:
        print("肥胖")
bmi_calculator()

问题点:return退出函数之后没有重新输入的提示

解决:用While循环包住输入

python 复制代码
#=====写一个BMI计算器=====
def bmi_calculator():
    while True:
        height=float(input("请输入你的身高: (米)"))
        weight=float(input("请输入你的体重: (公斤)"))
        #输入校验
        if height<=0 or weight<=0:
            print("身高和体重必须为正数,请重新输入")
            continue
        BMI=weight/(height**2)
        print(f"你的BMI值是{BMI}")
        if BMI<18.5:
            print("体重过低")
        elif 18.5<=BMI<=23.9:
            print("正常范围")
        elif 24.0<=BMI<=27.9:
            print("超重")
        elif BMI>=28.0:
            print("肥胖")
        break#计算完成后,退出循环
bmi_calculator()

注意这里再输入校验时使用的continue,上面的例子是return

相关推荐
TomEval3 小时前
【测AI】第12篇:NLP / CV / 语音 —— 三大 AI 方向速通
人工智能·python·自然语言处理·aigc·测试用例
SEO_juper3 小时前
给网页做可引用性评分:判断内容够不够让 AI 引用(GEO 工具,附代码)
开发语言·人工智能·爬虫·python·seo·独立站
AI直播技术杂谈3 小时前
无人直播中控的硬件底线,旧电脑要满足哪些条件
网络·python·ai·云计算
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 产品定位、功能模块与客户端原型解读
java·开发语言·交友
派小心.3 小时前
A/B实验分层随机种子的稳定性验证
大数据·服务器·前端·数据分析
Wang's Blog3 小时前
Java 项目实战:交友项目 —— 项目导读与整体架构
java·架构·交友
Helix2503 小时前
Python数据分析实战:Pandas清洗豆瓣短评与情感分析完整指南
python·pandas·数据清洗·情感分析··snownlp·文本数据处理
袋鼠云数栈UED团队3 小时前
从 Skills 到可靠的 Bugfix Agent
前端
今年下半年3 小时前
【短信发送】Spring Boot整合多种短信接口的实现(附源码)
java·spring boot·后端·sms·qcloudsms
MerryLuna3 小时前
专业的EUDR机构
大数据·人工智能·python