Python 2.7 如何在浮点数在范围内的情况下运行for循环
我试着运行我的长代码,但在这些短文中我的想法 我的问题需要两个条件。第一个Python 2.7 如何在浮点数在范围内的情况下运行for循环,python-2.7,list,for-loop,Python 2.7,List,For Loop,我试着运行我的长代码,但在这些短文中我的想法 我的问题需要两个条件。第一个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):
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
您使用的是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')
对于范围内的i
,而不是如果
是什么阻止您运行代码?您没有说明您遇到了什么问题或提出了什么问题。我编辑了我的问题。现在一切正常,我将float
转换为int
:如果int(I)在(0,200)范围内:
Red
Red
white
blue