Opérations booléennes

4.3 Opérations booléennes

Objectifs d'apprentissage

À la fin de cette section, vous devriez être capable de :

  • Expliquer le rôle des opérateurs logiques.
  • Décrire les tables de vérité pour and, or et not.
  • Créer des expressions avec des opérateurs logiques.
  • Interpréter des instructions if-else comportant des conditions qui utilisent des opérateurs logiques.

Opérateur logique : and

Les prises de décision reposent souvent sur plusieurs conditions. Ex. : un programme affichant si une entreprise est ouverte peut vérifier que hour >= 9 et hour < 17. Un opérateur logique (logical operator) prend un ou plusieurs opérandes de condition et produit True ou False.

Python possède trois opérateurs logiques : and, or et not. L'opérateur and prend deux opérandes de condition et renvoie True si les deux conditions sont vraies.

p q p and q
True
True
True
True
False
False
False
True
False
False
False
False
Tableau 4.1 Table de vérité : p and q.

Faites le point

Exemple : Entrée au musée

Concepts en pratique

Utilisation de l'opérateur and

1.
Considérez l'exemple ci-dessus. Jaden tente d'entrer alors que la capacité est de 2500 personnes et qu'il reste 2 heures avant la fermeture. Jaden peut-il entrer ?
  1. oui
  2. non
2.
Considérez l'exemple ci-dessus. Darcy tente d'entrer alors que la capacité est de 3000 personnes. Pour quelles valeurs de hrs_to_close Darcy pourra-t-il entrer ?
  1. hrs_to close > 1.0
  2. aucune valeur
3.
Étant donné is_admin = False et is_online = True, quelle est la valeur de is_admin and is_online ?
  1. True
  2. False
4.
Étant donné x = 8 et y = 21, quelle est la valeur finale de z ?
if (x < 10) and (y > 20):
  z = 5
else:
  z = 0
  1. 0
  2. 5

Opérateur logique : or

Parfois, une prise de décision ne requiert qu'une seule condition vraie. Ex. : si un élève fait partie de l'orchestre ou de la chorale, il participera au concert de printemps. L'opérateur or prend deux opérandes de condition et renvoie True si l'une des conditions au moins est true.

p q p or q
True
True
True
True
False
True
False
True
True
False
False
False
Tableau 4.2 Table de vérité : p or q.

Faites le point

Exemple : Invite de diffusion en continu

Concepts en pratique

Utilisation de l'opérateur or

5.
Étant donné days = 21 et que is_damaged vaut False, le remboursement est-il traité ?
if (days < 30) or is_damaged:
  # Process refund
  1. oui
  2. non
6.
Pour quelles valeurs de age n'y a-t-il aucune réduction ?
if (age < 12) or (age > 65):
  # Apply student/senior discount
  1. age >= 12
  2. age <= 65
  3. (age >= 12) and (age <= 65)
7.
Étant donné a = 9 et b = 10, le test réussit-il ?
if (a%2 == 0 and b%2 == 1) or (a%2 == 1 and b%2 == 0):
  # Test passed
else:
  # Test failed
  1. oui
  2. non

Opérateur logique : not

Si l'ordinateur n'est pas allumé, appuyez sur le bouton d'alimentation. L'opérateur not prend un seul opérande de condition et renvoie True lorsque l'opérande est faux, et renvoie False lorsque l'opérande est vrai.

not est un opérateur utile qui peut rendre une condition plus lisible et permet d'inverser la valeur d'un booléen. Ex. : is_on = not is_on.

p not p
True
False
False
True
Tableau 4.3 Table de vérité : not p.

Faites le point

Exemple : Avertissement de plongée

Concepts en pratique

Utilisation de l'opérateur not

8.
Étant donné x = 13, quelle est la valeur de not(x < 10) ?
  1. True
  2. False
9.
Étant donné x = 18, x se trouve-t-il dans l'intervalle correct ?
if not(x > 15 and x < 20):
  # x in correct range
  1. oui
  2. non
10.
Étant donné is_turn = False et timer = 65, quelle est la valeur finale de is_turn ?
if timer > 60:
  is_turn = not is_turn
  1. True
  2. False

À vous d'essayer

Limitations de vitesse

Écrivez un programme qui lit la vitesse d'une voiture sous la forme d'un entier et vérifie si la vitesse de la voiture respecte les limitations de l'autoroute. La vitesse d'une voiture sur l'autoroute doit être d'au moins 45 mph et ne doit pas dépasser 70 mph.

Si la vitesse se situe dans les limites autorisées, affichez « Good driving ». Sinon, affichez « Follow the speed limits ».