19 votes

Est-ce que "not e in c" diffère de "e not in c" en Python ?

Duplicata possible :
Ordre syntaxique pour l'utilisation des mots-clés "not" et "in".

Mon TA prétend que e not in c ne donne pas toujours les mêmes résultats que not e in c (il n'a pas donné d'explication pourquoi cependant). Je n'ai personnellement jamais vu la deuxième forme dans le code de qui que ce soit (sauf le sien et les livres expliquant que les deux sont équivalent) et je n'ai jamais vu les deux différer dans leur comportement, donc je me méfie de cette affirmation. N'ayant rien trouvé à ce sujet sur Google, j'ai décidé de venir ici.

Alors, quelqu'un a-t-il des informations sur un cas où le comportement des deux diffère ?

26voto

Ashwini Chaudhary Points 94431

Ils sont exactement les mêmes, car tous deux appliquent en fait le not in comparaison :

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

2voto

mipadi Points 135410

Ils sont identiques. not a une priorité inférieure à celle de in donc not x in y est interprété comme not (x in y) qui renvoie l'opposé de in qui est ce que not in fait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X