Python中的链式比较数字范围

wil*_*oup 2 python comparison chained

我有以下功能:

def InRange(number):
    return 5 <= number >= 1
Run Code Online (Sandbox Code Playgroud)

如果使用链式比较,如果数字不在1到5的范围内,我希望这个说错,但似乎无法做到这一点.

有什么建议?

Ash*_*ary 5

用这个:

1 <= number <= 5
Run Code Online (Sandbox Code Playgroud)

文档

x < y <= z等价于x < yand y <= z,除了y它只被评估一次(但在这两种情况下z,当x < y发现为假时根本不评估 )。

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

number >=5 and number >= 1
Run Code Online (Sandbox Code Playgroud)

因此,它将是True1 到无穷大之间的任何数字:

  • 我认为你的意思是对于从 **5** 到无穷大的任何数字来说,它都是“True”...... (2认同)

iCo*_*dez 5

你想要这样:

def InRange(number):
    return 1 <= number <= 5
Run Code Online (Sandbox Code Playgroud)

请注意,您还可以这样做:

def InRange(number):
    return 0 < number < 6
Run Code Online (Sandbox Code Playgroud)