Ateliers nomades #Python 03
Les conditions if/elif/else et la logique booléenne
Au programme
Le cours
Ne pas hésiter à copier les bouts de code du cours dans un fichier sur trinket afin de tester le code avant les exercices.
La logique booléenne
En programmation informatique, afin de faire des programmes évolués qui exécutent des instructions en fonction de la validité de certains évènements. Si ces évènements sont valides ou vraies alors on exécutent telles instructions, si ces évènements ne sont pas valides ou faux on joue d’autres instructions.
On appelle cela en programmation, la logique booléenne. En Python, cette logique est implémentée (réalisée) par les objets de types booléens.
Le type booléen
Le type booléen sert à représenter la validation d’expression ou d’instruction en Python.
Ce type ne prend que deux valeurs :
– True pour Vrai
– False pour Faux
Par exemple si l’on souhaite valider le fait que le nombre 1 soit plus petit que le nombre 2, on peut afficher la valeur de la validation de cette comparaison ainsi :
print ( 1 < 2 )
>>> True
On voit, que cela renvoie bien True. Car sauf dans un monde parallèle 1 et bien plus petit que 2.
De même si l’on souhaite valider le fait que le nombre 2 n’est pas plus petit que le nombre 1, on peut afficher la valeur de la validation de cette comparaison ainsi :
print ( 2 < 1 )
>>> False
On voit, que cela renvoie bien False. Car sauf dans un monde parallèle 1 et bien plus petit que 2.
Cet exemple n’est pas dingue mais au fil des exercices, la validation d’expression Python sera de plus en plus concret.
Les opérateurs de comparaison
Voici une partie des différents opérateurs que nous pouvons utiliser pour nos tests de validations
Opération | Sens |
< | Strictement inférieur (plus petit) |
<= | Inférieur ou égal |
> | Strictement supérieur (plus grand) |
>= | Supérieur ou égal |
== | Egal |
!= | N’est pas Egal |
Exemple d’utilisation de ces opérations
print( 2 < 1 )
>>> False
print( 1 < 2 )
>>> True
print(1 == 1)
>>> True
print(1 == 2)
>>> False
print(1 != 2)
>>> True
Les conditions
Jusqu’à présent, dans tous les programmes que nous avons écris l’interpréteur Python lit chaque instruction de haut en bas.
Souvent en programmation, on souhaite que certaines instructions ne soient exécutées que sous certaines conditions bien précises.
If (Si)
Soit un programme qui demande à un personne son âge et lui dis en fonction de ce dernier si il peut voter ou non.
Le programme aura les instructions suivantes :
– demander à l’utilisateur/rice son prénom
– répondre « Bonjour » en reprenant le prénom de l’utilisateur/rice
– demander son âge
– répondre « Tu es majeure et tu peux voter ! » si l’âge est supérieur ou égal à 18
Le début du programme commencerait ainsi :
prenom = input(« Bonjour, comment t’appelles-tu ? « )
print(« Bonjour « , prenom)
age = input (« Quel est ton âge? »)
age = int(age)
Jusqu’ici tout va bien. Mais il faut pouvoir dire à l’interpréteur de n’afficher la phrase « Tu es majeur et tu peux voter » uniquement SI l’âge est supérieur ou égal à 18.
Et pour se faire nous allons utiliser ce que l’on trouve dans plusieurs autres langages de programmation, à savoir les conditions.
Les conditions vont nous permettre comme leur nom l’indique de conditionner le comportement du programme.
Le mot clé IF permet d’exprimer la condition de ce que l’on cherche à valider SI. Le mot clé if s’utilise ainsi :
if CONDITION :
instruction 1
instruction 2
instruction 3
Pour créer une la condition if, il nous faut :
- utiliser le mot clé if, qui permet de définir la fonction.
- la condition de ce que l’on souhaite valider. Si la condition est vraie alors les instructions qui lui sont rattachées seront jouées.
- le mot clé : qui donne le point de départ des instructions qui composent la condition
- la liste d’instructions qui compose la condition. Attention ! Il faut décaler de 4 espaces sur la droite chaque instructions que l’on veut mettre dans la condition.
Si l’on reprends notre exemple de programme qui évalue l’âge légale pour voter voilà ce que cela donne:
prenom = input(« Bonjour, comment t’appelles-tu ? « )
print(« Bonjour « , prenom)
age = input (« Quel est ton âge? »)
age = int(age)
if age >= 18 :
print(« Tu es majeur et tu peux voter »)
Après avoir demandé son âge à l’utilisateur/trice avec l’ajout du code ci-dessus, l’interpréteur va afficher la phrase « Tu es majeur et tu peux voter » que si la condition âge est supérieur ou égal (>=) à 18 est vraie.
Si la condition est fausse, il ne va rien se passer.
Else (Sinon)
Améliorons notre programme qui permet de répondre si une personne est en âge de voter en rajoutant la réponse « Tu es mineur et ne peux pas voter » si la personne n’a pas 18 ans.
On pourrait utiliser de nouveau la condition if avec cette fois en vérifiant si l’âge est strictement inférieur à 18.
Cependant, le mot clé else (sinon) qui exprime la condition inverse de celle se trouvant dans la condition if peut-être utilisée.
Else ne s’utilise donc qu’après une condition a été établie avec le mot clé if. Le mot clé else s’utilise donc ainsi :
if CONDITION :
instruction 1
instruction 2
instruction 3
else:
instruction 1
instruction 2
instruction 3
La construction de la condition else s’effectue comme celle de la condition if à l’exception près que l’on n’a pas à préciser la condition. La condition de else sera automatique la condition qui ne respecte pas la condition if.
Si l’on reprends notre programme de vote, cela donnera le code qui suit :
prenom = input(« Bonjour, comment t’appelles-tu ? « )
print(« Bonjour « , prenom)
age = input (« Quel est ton âge? »)
age = int(age)
if age >= 18 :
print(« Tu es majeur et tu peux voter »)
else :
print(« Tu es mineur et tu ne peux pas voter »)
Elif (Sinon Si)
Le mot clé elif (sinon si) exprime une autre condition que celle précisé dans la condition if et permet ainsi d’enchaîner les conditions.
Elif ne s’utilise donc qu’après une condition a été établie avec le mot clé if. Le mot clé elif s’utilise donc ainsi :
if CONDITION :
instruction 1
instruction 2
instruction 3
elif CONDITION :
instruction 1
instruction 2
instruction 3
On pourrait enchaîner plusieurs conditions elif à la suite et terminer par une condition else qui serait une sorte de condition finale qui ne respecte aucune des conditions précédentes.
Prenons un autre exemple que celui du vote.
Dans l’exemple suivant l’ordinateur va juste faire une remarque sur l’âge de la personne à qui il répond.
prenom = input(« Bonjour, comment t’appelles-tu ? « )
print(« Bonjour « , prenom)
age = input (« Quel est ton âge? »)
age = int(age)
if age < 16 :
print(« Tu es jeune encore ! Profite ! Roulez jeunesse ! Rock & Roll ^^ »)
elif age == 18 :
print(« 18 ans ! Un premier grand cap ! Tu peux majeur, peux voter ! Peux tout faire…avec l’autorisation de ta mère ^^ »)
elif age < 25 :
print(« La vie étudiante te voilà ! Au revoir papa, maman ! Libéré ! Délivré ! Tu vas pouvoir t’éclater hey hey ^^! « )
elif age < 32 :
print(« La vie c’est fini hein ! Penses à trouver un emploi stable et une personne avec qui te marier ! A acheter un appart avoir 3 enfants et 2 chiens ! »)
elif age < 40 :
print(« Tu voudrais avoir 18 ans encore ! Ouais je sais … Moi aussi ^^ »)
else :
print(« Tu es trop vieux et puis ceci n’est qu’un exemple d’un exercice hein « )
And / Or
Il est possible de valider plusieurs expressions grâce au mots clé and et or. Ces mots clés permettent également d’affiner nos validations
Le mot clé AND qui veut dire ET vérifie que deux expressions soient vraies.
On veut par exemple que notre programme ne dise un message que si la personne a entre 18 et 25 ans.
Voici à quoi ressemblerait le programme :
prenom = input(« Bonjour, comment t’appelles-tu ? « )
print(« Bonjour « , prenom)
age = input (« Quel est ton âge? »)
age = int(age)
if age > 16 and age < 25 :
print(« Tu es jeune encore ! Profite ! Roulez jeunesse ! Rock & Roll ^^ »)
else :
print( » Parle à ma main ! « )
Il est possible de valider plusieurs expressions grâce au mots clé and et or. Ces mots clés permettent également d’affiner nos validations
Le mot clé OR qui veut dire OU vérifie qu’au moins une des deux expressions soit vraies.
On veut par exemple que notre programme ne dise un message que si la personne a 18 ans ou 21 ans.
Voici à quoi ressemblerait le programme :
prenom = input(« Bonjour, comment t’appelles-tu ? « )
print(« Bonjour « , prenom)
age = input (« Quel est ton âge? »)
age = int(age)
if age == 18 or age == 21 :
print(« Cool tu es majeur en europe ou aux états-unis Roulez jeunesse ! Rock & Roll ^^ »)
else :
print( » Parle à ma main 😉 ! « )
Bien sûr ce sont des exemples qui pour le coup ne sont pas directement parlant mais vous allez voir dans les exercices que ces mots clés sont très pratiques.
Les exercices
#Vote
vote(1985)
>>> « Tu es majeur(e) et peux voter ! »
vote(2010)
>>> « Tu es mineur(e) et ne peux pas voter ! »
#Nombre Pair
#Nombre Impair
#PierrePapierCiseaux
Mentions Légales
CGVU
06.17.75.36.61
christophe@leprofnomade.fr
© 2020 LeProfNomade