Comprendre les comparaisons chaînées : pourquoi 0 < 0 == 0 est évalué à False en Python
L'extrait de code Python de la bibliothèque standard soulève une question sur l'évaluation de l'expression 0 < 0 == 0, qui renvoie False de manière inattendue. Cet article approfondira le concept de comparaisons chaînées en Python pour fournir une explication de ce comportement.
Comparaisons chaînées en Python
Python permet d'enchaîner plusieurs opérateurs relationnels ensemble, enfermés dans une seule expression. Les comparaisons chaînées permettent d'exprimer facilement des comparaisons de valeurs au sein d'une plage. Par exemple, au lieu d'écrire (0 < x) et (x <= 5), vous pouvez écrire la forme concise 0 < x <= 5.
Processus d'évaluation
La clé pour comprendre pourquoi 0 < 0 == 0 est évalué à False pour reconnaître la gestion des cas particuliers de Python pour les comparaisons chaînées. Python évalue les comparaisons chaînées de droite à gauche, à l'exception de la comparaison initiale, qui est évaluée en premier.
Dans l'expression 0 < 0 == 0, la comparaison initiale est 0 < 0, qui donne la valeur False. Les comparaisons restantes, 0 == 0, ne sont pas pertinentes car une valeur False les précède. Par conséquent, l'expression est évaluée à False dans son ensemble.
Rupture de la chaîne
Les parenthèses peuvent être utilisées pour forcer l'évaluation d'opérateurs relationnels spécifiques avant d'autres, brisant ainsi la comparaison enchaînée. Par exemple :
Conclusion
Les comparaisons enchaînées de Python simplifient l’expression de comparaisons de plages. Cependant, il est important de comprendre le processus d'évaluation pour éviter des résultats inattendus. Par défaut, les comparaisons chaînées sont évaluées de droite à gauche, la comparaison initiale étant toujours évaluée en premier. Les parenthèses peuvent être utilisées pour regrouper des comparaisons et forcer des ordres d'évaluation spécifiques.
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!