« 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 à "<code>True"</code> ou "<code>False"</code>.
 
* 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é. <br />Sinon, l'expression est évaluée à la valeur booléenne de Y.
* 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é. <br />Sinon, l'expression est évaluée à la valeur booléenne de Y.
* '''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 ===