47

假设我想检查是否x属于范围 0 到 0.5。我该怎么做?

4

7 回答 7

78

不,你不能那样做。range()需要整数参数。如果您想知道是否x在此范围内,请尝试以下某种形式:

print 0.0 <= x <= 0.5

小心你的上限。如果您使用range()它被排除在外(range(0, 5)不包括5!)

于 2009-03-06T08:53:15.743 回答
26
print 'yes' if 0 < x < 0.5 else 'no'

range()用于生成连续整数数组

于 2009-03-06T08:51:47.540 回答
8
>>> s = 1.1
>>> 0<= s <=0.2
False
>>> 0<= s <=1.2
True
于 2009-03-06T08:54:56.753 回答
8

要检查某个数字 n 是否在两个数字 a 和 b 表示的包含范围内,您可以执行以下任一操作

if   a <= n <= b:
    print "yes"
else:
    print "no"

使用replace >=and <=with >and<来检查是否在andn表示的排他范围内(即and本身不是该范围的成员)。abab

Range 将生成由两个(或三个)转换为整数的参数定义的算术级数。请参阅文档。我猜这不是你想要的。

于 2009-03-06T09:12:17.367 回答
6

我会使用 numpy 库,它也允许您对数字列表执行此操作:

from numpy import array
a = array([1, 2, 3, 4, 5, 6,])
a[a < 2]
于 2009-08-14T14:06:52.997 回答
6
if num in range(min, max):
  """do stuff..."""
else:
  """do other stuff..."""
于 2015-03-11T14:39:42.030 回答
3

老忠实:

if n >= a and n <= b:

而且它看起来不像 Perl(笑话)

于 2009-03-06T11:40:55.887 回答