Comment fonctionne la priorité des opérateurs logiques en Python ?

Mary-Kate Olsen
Libérer: 2024-11-17 18:45:02
original
694 Les gens l'ont consulté

How Does Logical Operator Precedence Work in Python?

Priorité des opérateurs logiques en Python

Lorsqu'il s'agit d'opérateurs logiques dans les langages de programmation, il est crucial de comprendre leur priorité et leur ordre d'opérations. En Python, les opérateurs NOT, AND et OR suivent une hiérarchie spécifique qui régit l'ordre dans lequel ils évaluent les expressions.

Ordre de priorité :

Contrairement à la priorité séquence en C et C (PAS > AND > OR), Python a son propre ordre unique :

1. PAS
2. ET
3. OR

De la priorité la plus élevée à la plus basse, NOT est évalué en premier, suivi de AND, puis de OR. Cela signifie que les opérations NOT ont priorité sur AND et OR, et que les opérations AND ont priorité sur OR.

Exemple :

Considérez l'expression Python suivante :

result = not a and b or c
Copier après la connexion

Selon l'ordre de priorité, l'expression sera évaluée comme suit :

  1. a est vérifiée pour sa véracité.
  2. Si a est faux, non a est vrai . Sinon, c'est Faux.
  3. Si le résultat de not a est vrai et que b est évalué à b. Sinon, c'est Faux.
  4. Si le résultat de et b est Vrai, l'expression entière est évaluée à Vrai. Sinon, le résultat de ou c est évalué.
  5. c est vérifié pour la véracité.
  6. Si c est vrai, l'expression entière est évaluée comme vraie. Sinon, c'est Faux.

Tableau complet des priorités :

Pour une liste complète des priorités des opérateurs en Python, reportez-vous au tableau suivant :

Priorité Opérateurs 0 Affectation (=) 1 Fonctions Lambda (lambda) 2Expression conditionnelle (if-else)
Precedence Operators
0 Assignment (=)
1 Lambda functions (lambda)
2 Conditional expression (if-else)
3 Logical OR (or)
4 Logical AND (and)
5 Logical NOT (not)
6 Comparison operators (<, <=, >, >=, !=, ==)
7 Bitwise OR ( )
8 Bitwise XOR (^), Bitwise AND (&)
9 Shift operators (<<, >>)
10 Addition ( ), Subtraction (-)
11 Multiplication (*), Division (/), Floor division (//), Modulo (%)
12 Unary plus ( ), Unary minus (-), Bitwise NOT (~)
13 Exponentiation (**)
14 Coroutine creation (async with)
15 Indexing and slicing ([...], [...]), Function calls, Attribute access
16 Parentheses, Square brackets, Braces, Set literals
3 OU logique (ou) 4 ET logique (et) 5 NON logique (not) 6 Opérateurs de comparaison (<, <=, >, >=, !=, ==) 7 OU au niveau du bit ( ) 8 XOR au niveau du bit (^), ET au niveau du bit (&) 9 Opérateurs de décalage (<<, > ;>) 10 Addition ( ), Soustraction (-) 11 Multiplication (*), Division (/), Division d'étage (//), Modulo (%) 12 Unaire plus ( ), Unaire moins (-), Bitwise NOT (~) 13 Exponentiation (**) 14 Création de coroutines (asynchrone avec) 15 Indexation et découpage ([... ], [...]), Appels de fonctions, Accès aux attributs 16 Parenthèses, Crochets, Accolades, Littéraux définis

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