Python中的'not in c'与Python中的'e not in c'是否不同?[重复]

发布于 2021-01-29 14:55:21

这个问题已经在这里有了答案

8年前关闭。

可能重复:
使用“ not”和“ in”关键字的语法顺序

我的助教声称e not in c并非总是会产生与not e in c(他没有给出解释的 原因
)相同的结果。我从来没有亲自看过任何人代码中的第二种形式(除了他和他的书中解释了这两种形式
等效的),并且从未见过两种形式在行为上有所不同,因此我对此主张表示怀疑。没有通过Google找到任何东西,我决定来这里。

那么,有没有人知道两者的行为有所不同的任何情况的信息?

关注者
0
被浏览
85
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    它们完全相同,因为两者都实际应用了not in比较:

    In [25]: def func():
        'e' not in 'bee'
       ....:     
       ....:
    
    In [27]: def func1():
        not 'e' in 'bee'
       ....:     
       ....:     
    In [29]: dis.dis(func)
      2           0 LOAD_CONST               1 ('e')
                  3 LOAD_CONST               2 ('bee')
                  6 COMPARE_OP               7 (not in)
                  9 POP_TOP             
                 10 LOAD_CONST               0 (None)
                 13 RETURN_VALUE
    
    In [30]: dis.dis(func1)
      2           0 LOAD_CONST               1 ('e')
                  3 LOAD_CONST               2 ('bee')
                  6 COMPARE_OP               7 (not in)
                  9 POP_TOP             
                 10 LOAD_CONST               0 (None)
                 13 RETURN_VALUE
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看