为什么条件" 3> 5在范围(10)"在python中返回False?

时间:2018-05-28 09:48:01

标签: python python-3.x

我无法理解python在以下情况下返回False背后的逻辑:

3 > 5 in range(10)

返回True时:

False in range(10)

1 个答案:

答案 0 :(得分:5)

虽然@jonrsharpe的评论是正确答案,但对我来说并不是微不足道的,也许对你来说也是如此,所以我将其分解:

表达式的评估如下:

  1. 3 > 5 in range(10)
  2. 3 > 5 and 5 in range(10)
  3. False and 5 in range(10) == FalseFalse and ... short circuitsFalse
  4. 1 -> 2解释了x < y < z的原因。总而言之,x < y表示y < z (3 > 5) in range(10)

    尝试类似(3 > 5) in range(10)的内容将按如下方式进行评估:

    1. False in range(10)
    2. 0 in range(10)
    3. True
    4. 3 -> 4
    5. 0的原因是range(0,10)位于0 in range(10)内,表达式True被评估为布尔结果(即False或{{ 1}})取决于左侧(0)是否确实右侧(range(0,10)