Chained comparison number range in Python

前端 未结 3 1241
醉话见心
醉话见心 2021-01-14 04:25

I have the following function:

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

I want this to say false if the number is not within

相关标签:
3条回答
  • 2021-01-14 04:51

    Alternatively you can do (it seemed appropriate based on the function's name):

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

    For large numbers you should use:

    def InRange(number):
        return number in xrange(1, 10000000)
    
    0 讨论(0)
  • 2021-01-14 04:55

    Use this:

    1 <= number <= 5
    

    From 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).

    Your (incorrect)expression is actually equivalent to:

    number >=5 and number >= 1
    

    So, it is going to be True for any number between 1 to infinity:

    0 讨论(0)
  • 2021-01-14 05:09

    You want it like this:

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

    Note that you could also do:

    def InRange(number):
        return 0 < number < 6
    
    0 讨论(0)
提交回复
热议问题