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

相关推荐
云-缩影8 分钟前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
瑞克-桑切斯29 分钟前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
benchmark_cc1 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
维克兜率天1 小时前
【维克】趋势型CTA:期货市场的“追涨杀跌“
人工智能·python
Csvn2 小时前
性能监控
前端
Csvn2 小时前
构建工具
前端
取名真是2 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
梦想不只是梦与想2 小时前
PyTorch、CPU、GPU、CUDA
人工智能·pytorch·python·深度学习·机器学习·cuda
数字融合2 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全
FRing033 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2