【发布时间】:2009-03-06 08:49:08
【问题描述】:
假设我想检查 x 是否属于 0 到 0.5 的范围。我该怎么做?
我可以使用range 函数吗?
【问题讨论】:
假设我想检查 x 是否属于 0 到 0.5 的范围。我该怎么做?
我可以使用range 函数吗?
【问题讨论】:
要检查某个数字 n 是否在由两个数字 a 和 b 表示的包含范围内,您可以这样做
if a <= n <= b:
print "yes"
else:
print "no"
使用> 和< 替换>= 和<= 来检查n 是否在a 和b 表示的独占范围内(即a 和b本身不是范围的成员)。
Range 将生成由两个(或三个)转换为整数的参数定义的算术级数。请参阅documentation。我猜这不是你想要的。
【讨论】:
不,你不能那样做。 range() 需要整数参数。如果您想知道x 是否在此范围内,请尝试以下某种形式:
print 0.0 <= x <= 0.5
小心你的上限。如果您使用range(),则将其排除在外(range(0, 5) 不包括 5!)
【讨论】:
>>> s = 1.1
>>> 0<= s <=0.2
False
>>> 0<= s <=1.2
True
【讨论】:
if num in range(min, max):
"""do stuff..."""
else:
"""do other stuff..."""
【讨论】:
floats 示例。请参阅@vartec 的回答。
min <= num < max 的形式高效实现(对 stride != 1 进行了特殊检查)。您可以在range_contains 和range_contains_long 中查看cpython/Objects/rangeobject.c 中的实现
print 'yes' if 0 < x < 0.5 else 'no'
range() 用于生成连续整数数组
【讨论】:
老忠实:
if n >= a and n <= b:
而且它看起来不像 Perl(笑话)
【讨论】: