Python大于或小于

use*_*628 2 python if-statement python-2.7

我有一个'if-elif-else'块,如果一个值在该范围内,则会为其分配一定的值.然而,当我运行它时,只是在else块中赋值.这是我的代码:

if mile < 300:
    mileInfo['miles'] = 1
elif mile>=300 and mile <2000:
    mileInfo['miles'] = 2
elif mile>=2000 and mile <5000:
    mileInfo['miles'] = 3
else:
    mileInfo['miles'] = 4
Run Code Online (Sandbox Code Playgroud)

Mile返回一个浮点数,但我认为这与Java中的无关紧要.

谢谢

Ano*_*sse 7

也许mile是一个包含数字的字符串?它不会自动转换.

>>> "1" < 100
False
>>> "1" == 1
False
Run Code Online (Sandbox Code Playgroud)

您无需elif重新检查前一个是否if为false.如果值不是< 300,则保证是>=300.