Skip to main content
 首页 » 编程设计

Python if 语句故障排除

2025年05月04日11java哥

Python 版本:2.7

只是想知道下面的代码有什么问题:

def bmi_cat(bmi): 
    if bmi < 18.5: 
        return "underweight" 
    elif (bmi >=18.5 or bmi < 25): 
        return "normal" 
    elif (bmi >=25 or bmi < 30): 
        return "overweight" 
    else: 
        return "obese" 

基本上,如果我输入 17,它会给出正确答案,但它会给出高于 18.5 的正常值(3000 给出正常值而不是肥胖等...)

请您参考如下方法:

你想要and不是 or ...它需要满足两个条件...您也可以用 Python 将其编写为 if 18.5 <= bmi < 25让它更清楚并避免这种情况......

还可以考虑查看 http://docs.python.org/2/library/bisect.html它可以为你做这种事情,如果你有更大的范围,它会更好地扩展。看看 grade example .