« Programmation Python/Opérateurs » : différence entre les versions
Contenu supprimé Contenu ajouté
→les opérateurs logiques : entiers au lieu de chaînes de caractères |
→les opérateurs booléens : Comportement avec des opérandes non-booléens |
||
Ligne 37 :
=== les opérateurs booléens ===
Les expressions avec un opérateur booléen sont évaluées à
* X '''or''' Y : OU booléen. <br>Si X est évalué à <code>True</code>, alors l'expression est <code>True</code> et Y n'est pas évalué.
* X '''and''' Y : ET booléen. <br>Si X est évalué à <code>False</code>, alors l'expression est <code>False</code> et Y n'est pas évalué.
* '''not''' X : NON booléen.<br>Evalué à la valeur booléenne opposée de X.
En fait, ces opérateurs supportent n'importe quel type d'opérandes car ils sont convertis implicitement en valeur booléenne pour l'évaluation :
* Un entier est converti à <code>False</code> s'il vaut 0, et à <code>True</code> sinon ;
* Une chaîne de caractère, un tableau ou un dictionnaire est converti à <code>False</code> si elle / s'il est vide, et à <code>True</code> sinon. Il s'agit du même comportement que le précédent sur les entiers en utilisant le résultat de la fonction <code>len()</code> donnant la taille sous la forme d'un entier.
<syntaxhighlight lang="python3">
>>> not '' # Chaîne vide
True
>>> not 'abc' # Chaîne non vide
False
>>> not 'False' # Chaîne non vide
False
>>> not 'True' # Chaîne non vide
False
</syntaxhighlight>
Pour les opérateurs <code>or</code> et <code>and</code> avec des opérandes non-booléens, le comportement est donc le suivant
* X '''or''' Y : Retourne X si X équivaut à <code>True</code>, sinon retourne Y.
* X '''and''' Y : Retourne X si X équivaut à <code>False</code>, sinon retourne Y.
<syntaxhighlight lang="python3">
>>> 0 or 1
1
>>> 0 and 1
0
</syntaxhighlight>
=== les opérateurs de comparaisons ===
|