Python大于或小于

2024-09-25 08:39:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个“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返回一个float,但我认为这并不像Java那样重要。

谢谢


Tags: and代码ifjavafloatelse赋值elif
2条回答

问题是“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

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

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

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

不需要让elif重新检查之前的if是否为false。如果该值不是< 300,则保证为>=300

相关问题 更多 >