【问题标题】:Check if number is between given range [duplicate]检查数字是否在给定范围内[重复]
【发布时间】:2017-05-16 12:05:40
【问题描述】:

我遇到了一个答案,我们可以通过以下方法 10

从答案中,我知道此功能称为链接比较运算符。非常感谢您的回答。

【问题讨论】:

  • 你所说的“这个语句是如何被执行的”到底是什么意思?
  • 查看Hidden features of Python的第一个答案

标签: python


【解决方案1】:

在python中,这种双重条件是作为连续的ands来执行的,所以:

10 <= n <= 100

等于:

(10 <= n) and (n <= 100)

它返回一个布尔值,可以是TrueFalse,具体取决于是否满足语句。

【讨论】:

    【解决方案2】:

    这是“这条语句的执行方式”

    import dis
    
    def f(n):
        return 10<=n<=100
    
    print(dis.dis(f))
    

    给了

      6           0 LOAD_CONST               1 (10)
                  3 LOAD_FAST                0 (n)
                  6 DUP_TOP
                  7 ROT_THREE
                  8 COMPARE_OP               1 (<=)
                 11 JUMP_IF_FALSE_OR_POP    21
                 14 LOAD_CONST               2 (100)
                 17 COMPARE_OP               1 (<=)
                 20 RETURN_VALUE
            >>   21 ROT_TWO
                 22 POP_TOP
                 23 RETURN_VALUE
    

    但你真的想知道吗?

    Chaining comparison operators 可能是一个很好的参考。

    真的翻译成10 &lt; n and n &lt; 100

    【讨论】:

      猜你喜欢
      • 2021-04-01
      • 2014-12-05
      • 2017-03-28
      • 2021-03-15
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 2018-10-29
      相关资源
      最近更新 更多