好的,我现在有Python代码,它做这样的事情:
if plug in range(1, 5):
print "The number spider has disappeared down the plughole"
但我真正想做的是检查数字是否不在范围内。我在谷歌上搜索并查看了Python文档,但我什么也找不到。有什么想法吗?
附加数据:运行此代码时:
if not plug in range(1, 5):
print "The number spider has disappeared down the plughole"
我得到以下错误:
Traceback (most recent call last):
File "python", line 33, in <module>
IndexError: list assignment index out of range
我也试过了:
if plug not in range(1,5):
print "The number spider has disappeared down the plughole"
返回相同的错误。
发布于 2016-04-09 04:13:58
如果您的范围的step
为1,则使用它在性能方面要快得多:
if not 1 <= plug < 5:
而不是使用其他人建议的not
方法:
if plug not in range(1, 5)
证明:
>>> import timeit
>>> timeit.timeit('1 <= plug < 5', setup='plug=3') # plug in range
0.053391717400628654
>>> timeit.timeit('1 <= plug < 5', setup='plug=12') # plug not in range
0.05137874743129345
>>> timeit.timeit('plug not in r', setup='plug=3; r=range(1, 5)') # plug in range
0.11037584743321105
>>> timeit.timeit('plug not in r', setup='plug=12; r=range(1, 5)') # plug not in range
0.05579263413291358
这甚至没有考虑到创建range
所花费的时间。
发布于 2017-01-28 03:32:16
这似乎也行得通:
if not 2 < 3 < 4:
print('3 is not between 2 and 4') # which it is, and you will not see this
if not 2 < 10 < 4:
print('10 is not between 2 and 4')
我猜最初问题的确切答案应该是if not 1 <= plug < 5:
。
发布于 2016-04-09 04:08:50
使用:
if plug not in range(1,5):
print "The number spider has disappeared down the plughole"
只要变量插头超出1到5的范围,它就会打印给定的行
https://stackoverflow.com/questions/36507957
复制相似问题