Les opérateurs logiques

Introduction

Cette unité d'apprentissage introduit la notion de logique booléenne, opérateurs logiques et cirtuits logiques. Elle propose des exercices numériques sous forme de QCM et présente l'utilisation des opérateurs logiques en Python.

  • prérequis : notions d'opérateurs arithmétiques et de fonctions
  • temps : une heure de cours et une heure d'exercices d'application
  • modalités : cours avec prise de notes puis exercices numériques sur ordinateur

 

Découverte des opérateurs logiques

George BOOLE était un mathématicien britannique (1815 - 1864) qui a inventé l'algèbre qui porte son nom : l'algèbre de Boole (on parle aussi de logique booléenne).

En logique booléenne les variables ne peuvent prendre que 2 états : vrai ou faux

L'état vrai est noté aussi True (vrai en anglais) ou 1 (1 logique).

L'état faux est noté aussi False (faux en anglais) ou 0 (0 logique).

L'opérateur NOT : il renvoit True seulement si l'entrée est False

L'opérateur NOT est appelé le non logique (ou inverseur logique).

Table de vérité de l'opérateur logique NOT
A
not(A)
False
True
True
False

Remarque : la sortie de l'opérateur NOT est égale au complément de l'entrée.

 

L'opérateur AND : il renvoit True seulement si les deux entrées sont toutes True

L'opérateur AND est appelé le ET logique.

Table de vérité de l'opérateur logique AND
A
B
A and B
False
False
False
False
True
False
True
False
False
True
True
True

 

L'opérateur OR : il renvoit False seulement si les deux entrées sont toutes False

L'opérateur OR est appelé le OU logique (ou inclusif)

Table de vérité de l'opérateur logique OR
A
B
A or B
False
False
False
False
True
True
True
False
True
True
True
True

 

L'opérateur XOR : il renvoit True si les deux entrées sont dans un état différent.

L'opérateur XOR est appelé le ou-exclusif logique.

Table de vérité de l'opérateur logique XOR
A
B
A xor B
False
False
False
False
True
True
True
False
True
True
True
False

 

En résumé il existe 4 opérateurs logiques, les voici :

Les 4 opérateurs logiques
opérateur logique
opération effectuée
not
  non
and
  et
or
  ou inclusif
xor
  ou exclusif

Exemples d'applications :

Rappel :

  • True est strictement équivalent à 1
  • False est strictement équivalent à 0

0 and 1 = 0

1 or 0 = 1

1 xor 1 =0

not(1) = 0

not (1 and 0) = 1

not(0 xor 1) or (1 and 0) = 0

etc.

Priorités des opérateurs logiques :

Le ET est prioritaire devant le OU, et le OU a la même priorité que le OU-Exclusif.

Illustrations :

0 and 1 or 0 = (0 and 1) or 0

0 or 1 and 0 = 0 or (1 and 0)

0 or 1 xor 0 = (0 or 1) xor 0 = 0 or (1 xor 0)

 

Exercices sur les opérateurs logiques

Pour vous entraîner sur les opérateurs logiques répondez aux questions du thème "Les opérateurs logiques" de ce QCM tout en gardant cette page ressource ouverte en un premier temps.

 

Découverte des circuits logiques

Chaque fonction logique possède un symbole graphique :

les symboles des fonctions logiques de base
opérateur
symbole
fonction logique
valeur de la sortie
not
NON
S=1 ssi A=0
and
ET
S=1 ssi A=1 ET B=1
or
OU
S=0 ssi A=0 ET B=0
xor
OU-Exclusif
S=0 si A=B

De plus les fonctions logiques ET, OU et OU-Exclusif existent en versions complémentées :

les symboles des fonctions logiques complémentées
opérateur
symbole
fonction logique
valeur de la sortie
nand
ET-NON
S=0 ssi A=1 ET B=1
nor
OU-NON
S=1 ssi A=0 ET B=0
xnor
OU-Exclusif-NON
S=1 si A=B

En utilisant plusieurs symboles des opérateurs de base il est possible de représenter des fonctions logiques complexes sous forme de circuits logiques. La représentation graphique de la fonction logiques est alors appelé un logigramme. Exemple de logigramme (représentation graphique d'un circuit logique) :

exemple de logigramme avec 3 entrée A, B, C et une sortie S

Combien vaut la sortie S de ce logigramem si A=0 B=1 et C=0 ? Réponse : S=1

Combien vaut la sortie S de ce logigramem si A=1 B=0 et C=1 ? Réponse : S=0

En fonction des valeurs logiques des entrées d'un logigramme (0 ou 1) il sera toujours possible de déterminer la valeur de sa sortie S (0 ou 1).

 

Exercices sur les circuits logiques

Pour vous entraîner sur les logigrammes répondez à ce QCM.

 

Utilisation des opérateurs logiques en Python

En Python les opérateurs logiques de base sont notés and, or et not.

Les fonctions logiques nand, nor, xor et xnor n'existent pas en natif mais sont facilement programmables :

def nand(e1,e2):
     return not(e1 and e2)

def nor(e1,e2):
     return not(e1 or e2)

def xor(e1,e2):
     return e1!=e2

def xnor(e1,e2):
     return e1==e2

En Python les états logiques sont notés True et False et sont équivalents à 1 et 0 :

>>> True and False
False
>>> int(True)
1
>>> int(False)
0
>>> bool(1)
True
>>> bool(0)
False

Exemple d'utilisation des opérateurs logiques en Python :

>>> True or False
True
>>> True and True
True
>>> not(True)
False
>>> not(False)
True
>>> not(False or True)
False
>>> not(True and True)
False
>>> not(0)
True
>>> not(1)
False
>>> 0 and 1
0
>>> 0 or 1
1

Grâce aux opérateurs logiques et aux opérateurs de comparaison il est possible de formuler des conditions logiques complexes en Python.

Les conditions logiques
opérateur
test effectué
==
  égal à
!=
  différent de
>
  strictement supérieur à
>=
  supérieur ou égal à
<
  strictement inférieur à
<=
  inférieur ou égal à
and
  ET logique : le résultat est vrai si les 2 conditions sont vraies
or
  OU logique : le résultat est vrai si au moins une des 2 conditions est vraie
not
  NON logique : le résultat est vrai si la condition est fausse

Exemples de conditions logiques en Python :

>>> 5<9
True
>>> 2>=6
False
>>> 10!=12 and 7==(5+2)
True
>>> a=8
>>> a>5 and a<10
True
>>> a%2!=0 or a+1==10
False
>>> not(a==8)
False
>>> not(10<a)
True


Pour vous entraîner sur les conditions logiques en Python répondez aux questions des thèmes "Les opérateurs logiques" et "Les conditions logiques" de ce QCM.

 

 

 


 

 

Site Internet : python.gecif.net

Auteur : Jean-Christophe MICHEL

Professeur de Sciences Industrielles de l'Ingénieur
option Informatique et Numérique

Courriel : jc.michel@gecif.net