Python中的链式比较数范围

2024-05-15 16:03:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下功能:

def InRange(number):
    return 5 <= number >= 1

如果使用链式比较,数字不在1到5的范围内,但似乎不能正确地进行比较,我希望这个结果是错误的。

有什么建议吗?


Tags: 功能numberreturndef错误数字建议链式
3条回答

或者您可以这样做(根据函数的名称,这似乎是适当的):

def InRange(number):
    return number in range(1, 6)

对于大量数据,应使用:

def InRange(number):
    return number in xrange(1, 10000000)

你想要这样:

def InRange(number):
    return 1 <= number <= 5

请注意,您还可以执行以下操作:

def InRange(number):
    return 0 < number < 6

使用这个:

1 <= number <= 5

来自docs

x < y <= z is equivalent to x < y and y <= z, except that y is evaluated only once (but in both cases z is not evaluated at all when x < y is found to be false).

你的(不正确的)表达式实际上相当于:

number >=5 and number >= 1

因此,对于1到无穷大之间的任何数,它都是True

相关问题 更多 >