4. Les conditions

0

Pour l’instant, les précédents chapitre se sont attarder sur du code linéaire sans aucune logique. Maintenant on va passer aux choses sérieuses et voir comment on peut introduire des conditions qui vont influencer l’exécution de notre programme. Dans ce chapitre on verra :

  • Ce qu’est une condition
  • Comment utiliser l’instruction if
  • Comment utiliser l’instruction else
  • On finira par regarder comment traiter plusieurs conditions alternatives l’instruction elif

Première condition – l’instruction if

Comme le nom l’indique, une condition est une expression de la forme « si quelque », « alors autre chose ». En résumé on va tester une expression booléenne et si le résultat de cette expression est vrai (True), alors on va exécuter un bloc de code. Sinon on ignore le bloc de code en question.

Pour illustrer cela on peut prendre pour exemple un programme qui demande son âge à un utilisateur et affiche le message: « Bonjour, vous êtes majeur », si l’utilisateur entre un âge supérieur ou égal à 18 ans. En anglais on traduirait cet énoncé par « If the age is bigger or equal to 18, print ‘Bonjour, vous êtes majeur' ».

Et en python, si on veut exprimer une telle condition, on va écrire quelque chose qui se rapproche fortement de la phrase anglais mentionnée ci-dessus :

main.py
age = int(input("Quel est votre âge ? "))

if age >= 18:
    print("Bonjour, vous êtes majeur")

Regardons la ligne 3 et 4 en détail. Tout d’abord on commence par déclarer notre condition, pour cela on utilise le mot clé if, suivi de la condition qu’on souhaite tester, donc ici age >= 18. Ensuite on rajoute un double point pour délimiter la fin de notre condition et le début du bloc code qui doit être exécuté si la condition retourne True. Dans notre cas la condition retourne True, si l’utilisateur est âgé de plus de 18 ans. Ensuite en dessous du if on retrouve le code qui doit être exécuté si cette condition est True, et là, on imprime notre message « Bonjour, vous êtes majeur ».

Comme vous pouvez le voir sur l’image ci-dessus, si vous exécutez le code et que vous renseignez un âge plus grand ou égal à 18 vous avez bien le message « Bonjour, vous êtes majeur » qui s’affiche. En revanche si vous entrée un âge inférieur à 18, vous obtenez le résultat suivant :

Dans ce cas, notre programme se termine sans afficher le message « Bonjour, vous êtes majeur ».

Remarque: Vous pouvez utiliser n’importe quelle expression qui retourne un booléen en tant que condition dans vos ifs. Vous pouvez donc par exemple également vérifier si deux chaînes de caractères sont les mêmes. Par exemple si vous avez une variable « my_name » et que vous souhaitez exécuter du code en particulier si cette variable a la valeur « Jean », vous pouvez utiliser la condition if my_name == ‘Jean’ :

Notez que le print(« Bonjour, vous êtes majeurs ») est indenté avec 4 espaces (ou 1 Tab). Python utilise l’indentation afin de délimiter le bloc code qui appartient au if et doit être exécuté si la condition est True. Donc tout ce qui ce situe en dessous directement en dessous du if et est indenté par rapport au if, est executé si la condition est True. Ici une extension de notre exemple pour mieux illustrer cela :

main.py
age = int(input("Quel est votre âge ? "))

if age >= 18:
    print("Bonjour, vous êtes majeur!")
    print("Bienvenu à vous!")

print("Au revoir")

Ici, les deux prints qui se trouvent directement après le if, sont indentés au même niveau (4 espaces / 1 tab) et appartiennent donc tous les deux au bloc de code qui sera exécuté si la condition de notre if est remplie. Le print du message au revoir est quant à lui à l’extérieur de ce bloc car il est indenté au même niveau que le if (0 espaces / 0 tabs), et il sera donc exécuté indépendamment de la condition « age >= 18 ».

Si on lance notre programme deux fois, et qu’on renseigne une première fois un âge plus grand ou égal à 18, et une deuxième fois un âge inférieur à 18, on obtient le résultat suivant :

Comme vous le voyez pour l’âge supérieur à 18, on à bien les 3 prints qui s’affichent, les deux prints qui appartiennent à notre if, ainsi que le print du message « Au revoir », en revanche si on entre un âge de 15, la condition « age >= 18 » n’est pas remplie, et on a uniquement le message « Au revoir » qui s’affiche.

L’indentation en python

Dans l’exemple de condition que nous venons de voir, on a mentionné indentation du code et on a aussi évoqué la notion de bloc de code. Il est temps maintenant de parler plus en détail de ces imbrications de blocs de code.

Vous retrouverez ci-dessous une illustration afin de vous montrer visuellement les différents codes de bloc de l’exemple précédent ainsi que leur appartenance :

Il est important de noter que l’indentation est extrêmement importante en Python ! En effet, contrairement à d’autres langages, Python se base uniquement sur l’indentation pour délimiter les blocs de code. Une mauvaise indentation peut donc provoquer des erreurs d’exécution ou changer complètement le comportement de votre programme.

Il est aussi nécessaire d’appliquer toujours la même convention d’indentation, soit vous utiliser un nombre précis d’espaces, soit un tab, pour indenter votre code ! Ne mélangez jamais les deux ! Dans ce cours j’utiliserais toujours 4 espaces, mais veuillez bien à respecter la convention en place dans votre entreprise ou votre école.

Exemples d’indentations valides

Ici quelques exemples, d’indentations valides et le résultat de celles-ci :

Exemple 1 :

main.py
age = int(input("Quel est votre âge ? "))

if age >= 18:
    print("Bonjour, vous êtes majeur!")

print("Bienvenu à vous!")
print("Au revoir")

Résultat :

Exemple 2 :

main.py
age = int(input("Quel est votre âge ? "))

if age >= 18:
    print("Bonjour, vous êtes majeur!")
    print("Bienvenu à vous!")
    
    print("Au revoir")

Résultat :

Exemples d’indentations invalides

Et maintenant quelques exemple d’indentations invalides qui résultent en erreurs :

Exemple 1 :

main.py
age = int(input("Quel est votre âge ? "))

if age >= 18:
    print("Bonjour, vous êtes majeur!")
  print("Bienvenu à vous!")

print("Au revoir")

Résultat :

On a une erreur à la ligne 5, car cette ligne, n’est ni indentée au niveau du bloc if (4 espaces), ni au niveau du code principal (pas d’indentation).

Exemple 2 :

main.py
age = int(input("Quel est votre âge ? "))

if age >= 18:
print("Bonjour, vous êtes majeur!")
print("Bienvenu à vous!")

print("Au revoir")

Résultat :

Ici l’erreur se situe à la ligne 4, car cette ligne arrive juste après un if, et donc Python s’attend à un bloc indenté. Or ici la ligne n’a pas d’indentation.

Exemple 3 :

main.py
age = int(input("Quel est votre âge ? "))

    if age >= 18:
        print("Bonjour, vous êtes majeur!")
        print("Bienvenu à vous!")

print("Au revoir")

Résultat :

On obtient une erreur au niveau du if, car il est indenté alors qu’il devrait être aligné avec le bloc de code principal.

L’instruction else

maintenant comment
devons-nous procéder si on veut exécuter
quelque chose si jamais notre condition
n’est pas vrai donc par exemple si je
veut afficher le message vous êtes
mineur si la variable âge ne remplit pas
la condition plus grand régal à 18 et
bien pour cela nous avons le mot-clé
health donc sinon en français et nous
pouvons placer ce mot-clé hayes après un
ifsi jeu mais c’est nécessaire et ici
donc nous pourrions faire tles print
vous êtes mineur donc là aussi vous
voyez après le lg mais un double point
et j’invente le code qui appartient à
cette aide donc on aurait aussi pu avoir
plusieurs lignes de codes à l’intérieur
du health ici en a qu’une maintenant si
je relance notre code avec la variable h
à 12 ans on voit que le message vous
êtes mineur est affiché et bien entendu
aussi le message à bientôt qui n’a rien
à voir avec nos nos conditions if et
elze maintenant imaginons que nous
voulions tester plusieurs conditions
donc en plus de la condition h + rang
égal à 18 nous voulons également
afficher un message si jamais l’âge et
entre 0 et 18 ans un autre message si
jamais l’âge est exactement à zéro et
une erreur si jamais on a un âge
inférieur à 0 est bien pour cela on peut
rajouter des hells if ou en version
raccourcie l ihf donc elf ce qui se
traduit en français par sinon si nous
pouvons ajouter autant de l cif que nous
le souhaitons et dans notre exemple ça
va ressembler à ça on rajoute entre
notre iihf nôtres health 1 elif âge plus
grand que 0 and age plus petit que 18
ici on un dante le code et on va faire
un print de vous êtes mineur puis on
rajoute un alif âge est égal à égal à
zéro et là on fait un print de bienvenue
sur terre et dans l’autre aile au lieu
de vous êtes miller on va marquer
quelque chose dans le genre
quel âge étrange et voilà donc là on
teste plusieurs conditions et si jamais
on ne tombe dans aucune de ces
conditions on va exécuter le head’s up
final essayant ça tout de suite donc à
12 on a toujours le message vous êtes
mineur si je vais l’âge à 0 on reçoit
bien le message bienvenue sur terre à
bientôt et si j’essaie de mettre l’âge à
moins 12 on reçoit le message qu’à l’âge
étrange à bientôt et voilà vous savez
tout sur les conditions en python noter
encore que vous pouvez un briquet autant
de conditions que vous le souhaitez les
unes dans les autres vous pouvez donc
avoir des conditions dans des conditions
mais attention à toujours bien inventer
votre code donc ici par exemple si je
remets notre âge à 18 et que je crée une
nouvelle variable m les jeux vidéo et
qu’on la met à trous nous pouvons
maintenant ajouter une autre condition à
notre vif h plus grand ou égale à 18
donc à l’intérieur on va rajouter un if
aime les jeux vidéo double point et on
va imprimer nous avons une ps5 au bout
de la pièce et puis en dehors de cette
if on va rajouter à notre print la porte
est ouverte notez bien ici que leaf est
imbriqué à l’intérieur du premier riff h
plus grands égale à 18 et qu’on a
inventé une deuxième fois afin de
pouvoir indiquer que le print nous avons
une ps 5 au bout de la pièce fait partie
du if aime les jeux vidéo si on exécute
le code vous voyez maintenant le message
vous êtes majeur vous pouvez entrer nous
avons une ps1 qu’au bout de la pièce la
porte est ouverte à bientôt donc on est
bien entré dans ce if aime les jeux
vidéo si on met maintenant aime les jeux
vidéo à falls et congrès exécute le code
on a plus que les messages vous êtes
majeur vous pouvez entrer la porte est
ouverte à bientôt le message nous avons
une ps1 qu’au bout de la pièce
n’apparaît plus car la condition n’est
plus vrai et ceci conclut la vidéo
d’aujourd’hui j’espère qu’elle vous a
plu si c’est le cas n’oubliez pas de
licques et la vidéo et de vous abonner à
la chaîne pour ne pas louper les
prochains tuto laissez moi un
commentaire avec vos questions et
suggestions ça me fait toujours très
plaisir de vous lire et si vous avez des
amis qui apprennent la programmation
n’hésitez pas à le renvoyer le lien vers
la vidéo est sur ce je vous dis à très
bientôt

Laisser un commentaire