Tutoriel Python : opérateurs logiques

 id 3480

Table des matières

Introduction

  1. Petit Rappel : Les opérateurs de comparaison
  2. Les opérateurs logiques

2.1 Définition

2.2 Le OU logique

2.3 Le ET logique

2.4 Le NON Logique

2.5 Exercice : Allergies

2.6 Solution des exercices :

Conclusion :

Introduction

Bienvenue dans ce nouveau tutoriel Python ! Aujourd’hui nous allons aborder une notion parmi les plus  importantes dans le monde de la  programmation, il s’agit des opérateurs logiques. Nous allons commencer par la définition de ces différents opérateurs accompagnés d’exemples, pour finir avec des exercices d’entraînement!

Ce cours est destiné à toute personne souhaitant apprendre à coder en Python ! Cependant il est conseillé d’avoir une connaissance des opérateurs logiques afin de pouvoir programmer en toute aisance. Nous vous invitons donc à jeter un coup d’œil sur le Tutoriel Python : Maitriser les opérateurs de comparaison si ce n’est pas déjà fait !

Je vous invite donc à attacher vos ceintures car nous commençons notre voyage !

1. Petit Rappel : Les opérateurs de comparaison

Nous mettons à votre disposition un petit rappel indispensable sur les opérateurs de comparaison :

Opérateur

Syntaxe en Python

Définition

Egal

 ==

Teste l’égalité entre deux opérandes

Inférieur ou égal

<=

Teste si un opérande est inférieur ou égal à un autre

Supérieur ou égal

>=

Teste si un opérande est supérieur ou égal à un autre

Strictement inférieur

Teste si un opérande est strictement inférieur à un autre

Strictement supérieur

Teste si un opérande est strictement supérieur à un autre

Différent

!=

Teste la différence entre deux opérandes

2. Les opérateurs logiques

2.1 Définition

Les opérateurs logiques sont des des opérateurs mathématiques qui établissent  des relations binaires entre les variables. Ils permettent aussi de créer des conditions qui doivent être remplies par les variables afin de procéder à une méthode de calcul particulière.

Nous allons voir par la suite comment fonctionnent ces opérateurs ainsi que leur Syntaxe  en Python.

2.2 Le OU logique

C’est un opérateur logique qui nécessite qu’au moins une condition soit réalisée, par exemple si on a deux variables X et Y le OU logique opère sur ces dernières de la manière suivante :     

X

Y

Sortie

Vrai

Vrai

Vrai

Vrai

Faux

Vrai

Faux

Vrai

Vrai

Faux

Faux

Faux

En Python, nous représentons le OU logique par le « OR ». À présent, voici quelques exemples pour comprendre le fonctionnement de cet opérateur :

Exemple :

Pour que l’exécution retourne True, une des conditions doit être vérifiée, soit a est égal à 1 ou b égal à 2.

Syntaxe :

a=1
b=3
a==1 or b==2

Résultat de l’exécution :

 

 Exemple :

La condition sera vérifiée si a est strictement supérieur à b ou si a est égal à b .

Syntaxe : 

a=19
b=3 
a>b or a==b



Résultat de l’exécution :

 

Exemple :

 Nous voulons tester si une chaine est égale à ‘Bonjour’ ou à une chaine vide.

Syntaxe :

chaine1='BonJour'
chaine1=='Bonjour' or chaine1=='' 

Résultat de l’exécution :

 

Le résultat de l’exécution retourne  False car ‘BonJour’ en Python n’est pas égale à ‘Bonjour’ . Python est un langage sensible à la case.

Exemples avancés :

À présent, nous allons passer à des exemples plus développés afin de vous habituer à coder en Python :

Exemple :

Dans l’exemple ci-dessous, nous avons deux variables a et b qui peuvent prendre les valeurs « True » ou « False ». Ici le « if » permet d’exécuter le bout de code qui affiche le texte si la condition est remplie.

Dans le premier cas, l’une des variables est vraie donc la condition est remplie et python affiche le texte « l’une des conditions est vérifiée ! »

Par contre dans le deuxième cas, les deux variables sont fausses donc la condition n’est pas vérifiée et Python n’affiche rien !

Cas 1  : a = True, b = False

Syntaxe :

a=True
b=False
if a or b :
 print("une des conditions est vérifiée")
else :
  print("aucune des conditions n'est vérifiée")

Résultat de l’exécution :

Cas 2 : a = False, b = False

Syntaxe :

a=False
b=False  
if a or b :
 print("une des conditions est vérifiée")
else :
  print("aucune des conditions n'est vérifiée")

Résultat de l’exécution :

 

Exemple :  le Recruteur

   

Nous voulons coder un programme qui, selon les caractéristiques d’un profil, accepte de prendre en considération sa candidature pour un poste :

  • Si le candidat est âgé de moins de 30 ans ou son expérience ne dépasse pas 3 ans ou le salaire qu’il demande est inférieur à 10000 alors le programme doit afficher (‘Votre candidature sera prise en compte’).
  • Sinon il affiche (‘Nous sommes désolés mais votre candidature n'est pas valable pour ce poste’)

Cas  1 : condition vérifiée

Syntaxe : 

age=28
année_experience=5
salaire_demandé=10000
if age<30 or année_experience<3 or salaire_demandé<10000:
  print("Votre candidature sera prise en compte")
else :
  print("Nous sommes désolés mais votre candidature n'est pas valable")

Résultat de l’exécution :

Cas 2 : aucune condition vérifiée

Syntaxe :

age=31
année_experience=5 
salaire_demandé=10000
if age<30 or année_experience<3 or salaire_demandé<10000:
  print("Votre candidature sera prise en compte")
else :
  print("Nous sommes désolés mais votre candidature n'est pas valable")

Résultat de l’exécution :

Exemple : Qui va gagner le million ?

Le concept de ce programme est d’afficher (‘Vous avez gagné’) si la réponse de l’utilisateur est identique à «A » ou «E ».

Cas 1 : gagnant !

Syntaxe :

reponse="A"
if reponse=="A" or reponse=="E" :
 print("Vous avez gagné !")
else:
  print("Désolé ! vous avez perdu")
 

Résultat de l’exécution :

 

Cas 2 : Perdant !

Syntaxe :

reponse="C"
if reponse=="A" or reponse=="E" :
 
 print("Vous avez gagné !")
else:
  print("Désolé ! vous avez perdu")

Résultat de l’exécution :

 

2.3 Le ET logique

Nous voici arrivés à l’un des opérateurs les plus gourmands de l’algèbre. Le ET nécessite que toutes les conditions soient vérifiées, j’insiste sur toutes. Voici la table de vérité du ET logique :

X

Y

Sortie

Vrai

Vrai

Vrai

Vrai

Faux

Faux

Faux



Vrai

Faux

Faux

Faux

Faux

À présent, nous allons passer à quelques exemples :

Exemple :

Teste si 5 est supérieur à 0 et positif.

Syntaxe :

 5 > 0  and 5 > 1 

Résultat de l’exécution :

 

Exemple :

Teste si la longueur de la première chaine est strictement inférieure à celle de la deuxième et que les deux chaines sont différentes.

Syntaxe :

haine1='Bonj'
chaine2='Bonjour'
chaine1<=chaine2 and chaine1!=chaine2

Résultat de l’exécution :

 

Exemple :

Teste si un nombre est pair et positif.

Syntaxe :

nb=8
nb%2==0 and nb>0
 

Résultat de l’exécution :

 

Exemple :

Teste si un nombre est impair et positif.

Syntaxe :

nb=7 
nb%2!=0 and nb>0 
 
     

 Résultat de l’exécution :

 

Exemple :

Teste si un nombre est pair et  négatif

Syntaxe :

nb=-1
nb%2==0 and nb<0

Résultat de l’exécution :

 Exemples avancés :

  Exemple : Bon de réduction !

 

Dans cet exemple on veut écrire un programme qui permet à un client d’obtenir une réduction de 60% sur un troisième article :

  • S’il achète deux articles ou plus et si le montant total de ces articles dépasse 500. Alors le programme retourne ‘ Réduction appliquée sur le troisième article : ’ et le prix du troisième article réduit.
  • Sinon, il affiche le message suivant : « Réduction non applicable ».

Cas 1 : Réduction appliquée

Syntaxe :

prix_article1 = 129
prix_article2 = 532
prix_article3 = 100
nb_total_articles = 3
if nb_total_articles >=2 and prix_article1 + prix_article2 > 500 :
  print ("Réduction appliquée, le troisième article reste à :", prix_article3 -(prix_article3*60)/100)
 
else:
  print ("Réduction non applicable")

Résultat de l’exécution :

 

Cas 2 : Réduction non applicable 

Syntaxe :

prix_article1 = 29
prix_article2 = 32
prix_article3 = 100 
nb_total_articles = 3
if nb_total_articles >=2 and prix_article1 + prix_article2 > 500 :
  print ("Réduction appliquée, le troisième article reste à :", prix_article3 -(prix_article3*60)/100)
 
else:
  print ("Réduction non applicable")

Résultat de l’exécution :

Exemple : Les quatre vérités du ET

Pour bien comprendre l’opérateur logique ET et tester tous les cas possibles. Nous allons écrire un programme qui résume la table de vérité du ET :

Syntaxe :

A=True
B=False  
print ( " A est VRAI et B est FAUX retourne : ", A and B )
print ( " A est FAUX  et B est FAUX retourne : ", not A and  B)
print ( " A est FAUX et B est VRAI : ", not A and not B )
print ( "A est VRAI et B est VRAI : ", A and not B )

Résultat de l’exécution :

Voila ! Le résultat de l’exécution confirme que la seule fois où la condition est bien remplie est  le cas où les deux variables sont vraies et donc notre programme affiche ‘toutes les conditions sont vérifiées’.

2.4 Le NON Logique

C’est un opérateur assez simple qui retourne la négation de la variable. Par exemple si a est vrai le non a est faux et inversement. Voici la table de vérité du non logique qui résume  les deux cas possibles.

X

Non X

Vrai

Faux

Faux

Vrai

Le non logique en Python est exprimé par le terme « not ».

Remarque : Faites très attention Python est sensible à la casse donc si vous écrivez Not à la place de not, le programme ne reconnaitra pas l’opérateur ! Ceci est valable même pour les autres opérateurs.

Exemple :

Dans cet exemple, le programme doit retourner la négation de True.



Syntaxe :

a=True
not a

Résultat de l’exécution :

 

 Exemple :

Ici, on veut retourner le non de False.

Syntaxe :

b=False
not b 

Résultat de l’exécution :

Exemple :

Syntaxe :

not 5 > 6

Résultat de l’exécution :

 

Exemples avancés :

Exemple : Nombre de places  dans une classe

Dans cet exemple, nous voulons écrire un programme qui teste si le  nombre de places dans un cours est suffisant pour tous les étudiants :

  • On vérifie le non de la condition nombre_étudiants< place_disponible, Si il est vérifié, le programme affiche (« le nombre de places est insuffisant).
  • Sinon, il affiche (« tout le monde est bien installé)

Cas 1= nombre de places suffisant

Syntaxe :

nombre_étudiants = 99
place_disponible = 101
if not (nombre_étudiants < place_disponible) :
  print ( " le nombre de places est insuffisant ! " )
else :
  print ( " tout le monde est bien installé ! " )

Résultat de l’exécution :

Cas 2 : nombre de places insuffisant

Syntaxe :

nombre_étudiants = 99
place_disponible = 89 
if not (nombre_étudiants < place_disponible) :
  print (" le nombre de places est insuffisant ! " )
else :
  print ( " tout le monde est bien installé ! " )

Résultat de l’exécution :

 

Exemple : Réussir son année scolaire

Dans cet exemple, on veut écrire un programme qui permet de prédire si un étudiant a réussi ou a échoué en se basant sur la moyenne des deux semestres :

  • ·Si  le non de la condition (moyenne des deux semestres  > 10) alors le programme affiche (‘Désolé ! vous devez refaire votre année ! ‘)
  • ·Sinon, il affiche (‘Félicitations, vous avez réussi votre année !’)

Cas 1 : Echec !

Syntaxe :

note_semestre1 = 10
note_semestre2 = 9.2
if not (( note_semestre1+note_semestre2 )/ 2) >10 :
 print (" Désolé ! Vous devez refaire votre année ! " )
else :
  print (" Félicitations, vous avez réussi votre année! ")

Résultat de l’exécution :

Cas 2 : Réussite !

Syntaxe :

note_semestre1 = 10
note_semestre2 = 10.5
if not (( note_semestre1+note_semestre2 )/ 2) >10 :
 print (" Désolé ! Vous devez refaire votre année ! " )
else :
  print (" Félicitations, vous avez réussi! ")

Résultat de l’exécution :

2.5   Exercice : Allergies

 

Un client souhaite savoir s’il peut manger ou non des plats. Pour cela vous devez écrire un programme en Python qui réalise les conditions suivantes :

  • ·le client a une allergie des crevettes et des fraises 
  • ·le programme doit tester tous les ingrédients :
    • Si un des ingrédients du premier plat ou du deuxième plat sont des crevettes ou des fraises, le programme doit annoncer au client qu’il risque une allergie.
    • Sinon, il annonce au client qu’il peut manger  les deux plats sans risque.

Remarque : On teste que les ingrédients du premier plat ne contiennent pas des crevettes et que ceux du deuxième plat ne contiennent pas des fraises.

Voici le pseudocode du programme afin de vous faciliter la tâche :

Ingrédient1_plat1 = Farine
Ingrédient2_plat1 = Beurre
Ingrédient3_plat1 = Parmesan
Ingrédient1_plat2=Pomme
Ingrédient2_plat2=Farine
Ingrédient3_plat2=Sucre
Si NON (( ingrédient1_plat1=’Crevette’ OU ingrédient2_plat1=’Crevette’ OU  ingrédient_plat3=’Crevette’) OU (ingrédient1_plat2=’Fraises’ OU ingrédient2_plat2= ‘Fraises’ ou ingrédient3_plat2=’Fraises’))  alors :
  Afficher (‘Attention votre plat contient un ingrédient dont vous êtes allergique ‘)
Sinon :
Afficher (‘Vous pouvez manger le plat sans risque’)

À vos claviers !

2.6 Solution des exercices :

Exercice : Allergies  

Cas 1 = Risque d’allergie 

Syntaxe :

ingredient1_plat1= 'Farine'
ingredient2_plat1= 'Beurre'
ingredient3_plat1= 'Crevette'
ingredient1_plat2= 'Pomme'
ingredient2_plat2= 'Farine'
ingredient3_plat2= 'Sucre'
condition1= (ingredient1_plat1=='Crevette' or ingredient2_plat1=='Crevette' or ingredient3_plat1=='Crevette')
condition2= (ingredient1_plat2=='Fraise' or ingredient2_plat2=='Fraise' or ingredient3_plat2=='Fraise')
if not((condition1) or (condition2)):
 print ("Bon appétit!")
else :
  print ("Attention votre plat contient un ingrédient qui peut vous causer une allergie!")



Résultat de l’exécution

Cas 2 : Bon appétit !

Syntaxe :

ingredient1_plat1='Farine'
ingredient2_plat1='Beurre'
ingredient3_plat1='Sel'
ingredient1_plat2='Pomme'
ingredient2_plat2='Farine'
ingredient3_plat2='Sucre'
condition1= (ingredient1_plat1=='Crevette' or ingredient2_plat1=='Crevette' or ingredient3_plat1=='Crevette')
condition2= (ingredient1_plat2=='Fraise' or ingredient2_plat2=='Fraise' or ingredient3_plat2=='Fraise')
if not((condition1) or (condition2)):
  print ("Bon appétit!")
else :
  print ("Attention votre plat contient un ingrédient qui peut vous causer une allergie!")

Résultat de l’exécution :

Conclusion :

Nous sommes arrivés à la fin de ce tutoriel ! Vous devez à présent être fier de vous-même car vous venez de compléter un tutoriel très essentiel dans la programmation. Nous vous conseillons d’avancer dans l’apprentissage de Python afin de compléter vos connaissances.

Cependant, il est très conseillé de refaire les exemples de ce tutoriel et d’essayer de  les développer encore plus.

Finalement , nous vous souhaitons un bon courage dans la suite des cours et à un prochain tutoriel !