C3.2 : Utilisation des opérateurs booléens

Un peu d'histoire

Portrait de George Boole
George BOOLE (1815-1864)

Mathématicien anglais, il publie en 1854 les "Lois de la pensée". Dans ce livre, il décrit comment toute la logique peut être définie par un principe simple : le binaire.

Les opérateurs booléens

Prendre connaissance

Prendre connaissance de Mémo : Les conditions :

  • ◼ Les opérateurs logiques ou opérateurs booléens

Applications

Application II_app1

Sur l'ordinateur : Tester les trois opérateurs avec des valeurs différentes et compléter leurs tables de vérité.

Exemple de code pour tester les opérateurs :

r = not False
A not A
False  
True  
A B A or B
False False  
False True  
True False  
True True  
A B A and B
False False  
False True  
True False  
True True  

Application II_app2

Sur feuille, puis vérifier sur l'ordinateur

Donner la valeur (True ou False) des expressions suivantes :

Afficher la correction
  • 15 <= 20 or 1> 150 => True
  • 2 < 4 and 2 < 3 => True
  • "A" == "A" and "B"=="B" => True
  • not (1 < 3) => False
  • not (15 <= 20) or 1 < 150 => True
  • 3 < 5 and ((7 < 5) or (2 < 3)) => True

Application II_app3

Sur feuille, puis vérifier sur l'ordinateur

Donner les valeurs des variables c et d à la fin de l'execution du code suivant :

a = 5
b = 10
c = a > 50 and b == 10
d = a == 3 or not(b != 15)
Afficher la correction

Les variables c et d valent False.

Utiliser les expressions booléennes

Application III_app1

1) En utilisant qu'un seul if, écrire une fonction qui :

2) Écrire une deuxième version de la fonction, sans utiliser de if.

Afficher la correction
# Version 1
def est_entre_8_et_12_v1(nb:int)->bool:
    if nb > 8 and nb < 12:
        return True
    else:
        return False

# Version 2
def est_entre_8_et_12_v2(nb:int)->bool:
    return nb > 8 and nb < 12

Application III_app2

En utilisant qu'un seul if, écrire une fonction qui  :

Afficher la correction
def est_prenom_neveu_Donald(prenom:str)->bool:
    if prenom == "Riri" or prenom == "Fifi" or prenom == "Loulou":
        return True
    else:
        return False

Application III_app3

En utilisant qu'un seul if, écrire une fonction qui :

Afficher la correction
# Version 1
def pair_et_pas_entre_51_et_81_v1(nb:int)->str:
    if nb % 2 == 0 and not(nb >= 51 and nb <= 81):
        return "Bravo"
    else:
        return "Non !"

# Version 2
def pair_et_pas_entre_51_et_81_v2(nb:int)->str:
    if nb % 2 == 0 and (nb < 51 or nb > 81):
        return "Bravo"
    else:
        return "Non !"

Évaluation par la gauche des opérations booléennes

Mise en évidence

Préambule

Sur l'ordinateur : Tester le code suivant et expliquer pourquoi il déclenche une erreur.

r = 8 / 0

Mise en évidence avec le or

Sur l'ordinateur : Tester le code suivant :

r1 = True or (8 / 0)
r2 = (8 / 0) or True

Sur feuille : Proposer une explication quand à la différence de traitement de ces deux lignes de code par le noyau de Python.

Mise en évidence avec le and

Sur l'ordinateur : Tester le code suivant :

s1 = False and (8 / 0)
s2 = (8 / 0) and False

Sur feuille : Proposer une explication quand à la différence de traitement de ces deux lignes de code par le noyau de Python.

Pour compléter

Python, documentation officielle : Opérations booléennes