wil*_*oup 2 python comparison chained
我有以下功能:
def InRange(number):
return 5 <= number >= 1
Run Code Online (Sandbox Code Playgroud)
如果使用链式比较,如果数字不在1到5的范围内,我希望这个说错,但似乎无法做到这一点.
有什么建议?
用这个:
1 <= number <= 5
Run Code Online (Sandbox Code Playgroud)
从文档:
x < y <= z等价于x < yandy <= z,除了y它只被评估一次(但在这两种情况下z,当x < y发现为假时根本不评估 )。
您的(不正确)表达式实际上相当于:
number >=5 and number >= 1
Run Code Online (Sandbox Code Playgroud)
因此,它将是True1 到无穷大之间的任何数字:
你想要这样:
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)