我尝试运行我的长代码,但是想法很短。
我的问题需要两个条件。 i
在范围内的第一个。第二个使用列表中的所有值
m = [181.452, 147.0213, 480.33, 1000.05]
for i in m:
if i in range(0 , 200):
print ('Red')
if i in range(201 , 500):
print ('white')
if i in range(501 , 1000):
print ('green')
if i in range(1000 , 1500):
print ('blue')
您可以看到列表int
中的值何时出现:
m = [181, 147.0213, 480.33, 1000.05]
for i in m:
if i in range(0 , 200):
print ('Red')
if i in range(201 , 500):
print ('white')
if i in range(501 , 1000):
print ('green')
if i in range(1000 , 1500):
print ('blue')
输出到第二个代码:Red
答案 0 :(得分:1)
您正在使用range()
,它返回int
值的迭代器,因此您的代码无法正常工作。这意味着如果您写过
if i in range(0,5)
然后它将翻译为:
if i in (0, 1, 2, 3, 4)
因此,此处未捕获您的浮点值。同样,当您有比较运算符时,也不宜使用迭代器进行比较。
使用以下代码:
m = [181.452, 147.0213, 480.33, 1000.05]
for i in m:
if 0 <= i <= 200: # this is pythonic way to write "if i >= 0 and i <= 200"
print('Red')
elif 200 < i <= 500:
print ('white')
elif 500 < i <= 1000:
print ('green')
elif 1000 < i <= 1500:
print ('blue')
输出:
Red
Red
white
blue