« Programmation Python/Booléens » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 36 :
Que se passe-t-il ? Le programme consiste en un tas de <code>print</code>. Chaque <code>print</code> affiche un nombre et une expression. Le nombre sert à savoir de quel ligne on parle. Notez bien comme chaque expression finit soit par <code>False</code> ou <code>True</code>. En python False et True peuvent aussi être écrits 0 et 1.
 
=== And ===
Voyez ce code :
 
Ligne 62 ⟶ 63 :
|}
 
Notez que si la première expression est fausse Python ne vérifie pas la seconde car il sait que l'expression car il sait que tout l'expression est fausse. Essayez de lancer <code>FalsFalse and print("Salut")</code> et comparez le à <code>True and print("Salut")</code>. Le terme technique pour ceci est ''[[w:Short-circuit evaluation|short-circuit evaluation]]'' (littéralement "évaluation en circuit court").
 
=== Not ===
La ligne suivante, <code>print(5, not a == 7 and b == 7)</code>, utilise l'opérateur <code>not</code>. <code>not</code> retourne l'opposé d'un expression. (Ll'expression pourrait être réécrite <code>print(5, a != 7 and b == 7)</code>). Voici la table de vérité :
 
{| class="wikitable"
Ligne 77 ⟶ 79 :
|}
 
=== Or ===
Les deux lignes suivantes, <code>print(7, a == 7 or b == 7)</code> et <code>print(7, a == 7 or b == 6)</code> utilisent l'opérateur <code>or</code>. <code>or</code> retourne vrai si la première expression est vraie ou si la seconde expression est vraie, si la seconde expression est vraie ou si les deux le sont. Si aucune n'est vraie il retourne faux. Voici sa table de vérité :
 
Ligne 98 ⟶ 101 :
Notez que si la première expression est vraie Python ne vérifie pas la seconde expression car il sait que toute l'expression est vraie. Cela marche car <code>or</code> est vrai si au moins une des expressions est vraie. La première partie est vraie donc la seconde pourrait être vraie ou fausse, mais l'expression est toujours vraie.
 
Les deux lignes suivantes, <code>print(8, not (a == 7 and b == 6))</code> et <code>print(9, not a == 7 and b == 6</code>, montrent que les parenthèses peuvent être utilisées pour regrouper des expressions et forcer l’évaluation d'une partie en premier. Notez que les parenthèses ont changé l'expression de "faux" à "vrai". La raison est que les parenthèses ont forcé le <code>not</code> à s'appliquer à toute l'expression au lieu de seulement la partie <code>a == 7</code>.
 
== Exemple ==
Voici un exemple de l'utilisation des expressions booléennes :
<source lang="python">
Ligne 118 ⟶ 122 :
count = count + 1
 
# Si aucun doublon n'a été trouvé alors "count" ne peut pas être "< len"
# puisque la boucle while continue tant que "count < len"
# et qu'aucun doublon n'a été trouvé
 
Ligne 130 ⟶ 134 :
Premier doublon : Jill
 
 
<!--FIXME-->
This program works by continuing to check for match <code>while count < len(copy) and copy[count] is not equal to prev</code>. When either <code>count</code> is greater than the last index of <code>copy</code> or a match has been found the <code>and</code> is no longer true so the loop exits. The <code>if</code> simply checks to make sure that the <code>while</code> exited because a match was found.
 
Ligne 137 ⟶ 141 :
Boolean expressions can be used when you need to check two or more different things at once.
 
=== ANote notesur onles Booleanopérateurs Operatorsbooléens ===
A common mistake for people new to programming is a misunderstanding of the way that boolean operators works, which stems from the way the python interpreter reads these expressions. For example, after initially learning about "and " and "or" statements, one might assume that the expression <code>x == ('a' or 'b')</code> would check to see if the variable <code>x</code> was equivalent to one of the strings <code>'a'</code> or <code>'b'</code>. This is not so. To see what I'm talking about, start an interactive session with the interpreter and enter the following expressions:
 
Ligne 228 ⟶ 232 :
When these comparisons are evaluated they return truth values in terms of True or False, not strings, so we get the proper results.
 
=== ExamplesExemples ===
'''password1.py'''
<source lang="python">