Python : confusion de priorité des opérateurs avec les opérateurs 'in' et de comparaison
En Python, comparer l'appartenance à une séquence et l'égalité peut conduire à des résultats inattendus en raison à la priorité égale des opérateurs « in » et de comparaison. Lorsqu'ils sont rencontrés dans une expression sans parenthèses, ces opérateurs sont évalués de gauche à droite.
Par exemple :
'1' in '11' == True # Evaluates to False
Cette expression est interprétée comme :
('1' in '11') and ('11' == True)
Puisque « 11 » n’est pas égal à True, l’expression entière est évaluée à False. Pour obtenir le résultat escompté (Vrai), les parenthèses sont requises :
'1' in '11' == True # Evaluates to True
Cependant, si des parenthèses sont placées autour de l'opérande opposé :
'1' in ('11' == True) # TypeError
une TypeError est levée car '11' est égal à True, qui est une valeur booléenne et donc non itérable. Pour éviter cette erreur, assurez-vous que l'opérateur 'in' est utilisé avec un objet itérable.
Comprendre la priorité et le chaînage des opérateurs en Python est crucial pour écrire du code qui se comporte comme prévu. Les opérateurs ayant la même priorité sont évalués de gauche à droite et le chaînage vous permet d'effectuer plusieurs évaluations sur une seule ligne. En examinant attentivement la priorité et le chaînage des opérateurs, vous pouvez éviter des résultats inattendus et écrire un code plus efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!