Python大于或小于

时间:2012-11-28 19:36:21

标签: 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

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

由于

2 个答案:

答案 0 :(得分:7)

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

>>> "1" < 100
False
>>> "1" == 1
False

您无需让elif重新检查上一个if是否为假。如果该值不是< 300,则保证为>=300

答案 1 :(得分:3)

问题是'mile'是一个字符串,并且由其他成员指出字符串不会自动转换。所以我将代码更改为:

mileInt = int(float(mile))

if mileInt < 300:
    mileInfo['miles'] = 1
elif mileInt < 2000:
    mileInfo['miles'] = 2
elif mileInt < 5000:
    mileInfo['miles'] = 3
else:
    mileInfo['miles'] = 4

使用打印类型(英里)有助于检查类型是什么。