Pourquoi \'1 in \'11\' == True\' renvoie-t-il une TypeError en Python ?

Susan Sarandon
Libérer: 2024-11-01 14:33:29
original
991 Les gens l'ont consulté

Why Does

Comprendre la priorité des opérateurs en Python : 'in' vs comparaison

En Python, déterminer l'ordre des opérations peut être crucial pour évaluer les expressions correctement. La priorité des opérateurs spécifie leur priorité, les opérateurs de priorité supérieure étant évalués en premier.

Considérez les expressions suivantes :

<code class="python">'1' in '11'
('1' in '11') == True</code>
Copier après la connexion

Les deux expressions sont évaluées à True, indiquant que l'opérateur « in » a une priorité inférieure à celle de l'opérateur de comparaison '=='. Cependant, placer des parenthèses autour de l'expression 'in' modifie l'ordre d'évaluation :

<code class="python">'1' in ('11' == True)</code>
Copier après la connexion

Cette expression génère une TypeError, indiquant que quelque chose ne va pas. Pour comprendre pourquoi, examinons la priorité des opérateurs de Python.

Selon la documentation Python, 'in' et '==' ont la même priorité. Par conséquent, Python les évalue de gauche à droite. Dans ce cas, Python évalue d'abord « 1 » dans « 11 », ce qui donne la valeur True. Cependant, la partie '== True' est ensuite évaluée comme une expression booléenne, conduisant à TypeError puisqu'une valeur booléenne ne peut pas être itérée.

Pour résoudre ce problème, vous pouvez tirer parti du chaînage. Le chaînage permet de regrouper et d'évaluer plusieurs opérateurs ayant la même priorité. En ajoutant des parenthèses comme suit, vous pouvez forcer l'évaluation de l'opérateur « in » en premier :

<code class="python">'1' in '11' == True</code>
Copier après la connexion

Cette expression est évaluée à False, ce qui correspond à vos attentes. Les parenthèses garantissent que l'opérateur « in » est évalué en premier, ce qui donne True. Ceci est ensuite comparé à True dans l'expression '==', ce qui donne False.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!