Maison >développement back-end >Tutoriel Python >Pourquoi \'1\' dans \'11\' == True est-il évalué à False en Python ?

Pourquoi \'1\' dans \'11\' == True est-il évalué à False en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 11:38:00745parcourir

Why Does '1' in '11' == True Evaluate to False in Python?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn