我有以下功能:
def InRange(number):
return 5 <= number >= 1
如果使用链式比较,如果数字不在1到5的范围内,我希望这个说错,但似乎无法做到这一点。
有什么建议吗?
答案 0 :(得分:5)
你想要这样:
def InRange(number):
return 1 <= number <= 5
请注意,您也可以这样做:
def InRange(number):
return 0 < number < 6
答案 1 :(得分:4)
使用此:
1 <= number <= 5
来自docs:
x < y <= z
相当于x < y
和y <= z
,但y
除外 仅评估一次(但在两种情况下z
都没有评估 发现x < y
是假的。)
您的(不正确)表达式实际上等同于:
number >=5 and number >= 1
因此,对于1到无穷大之间的任何数字,它都是True
:
答案 2 :(得分:1)
或者你可以这样做(根据函数的名称似乎合适):</ p>
def InRange(number):
return number in range(1, 6)
对于大数字,您应该使用:
def InRange(number):
return number in xrange(1, 10000000)