Apprendre à programmer : les conditions
<<< Article précédent : Mon premier programme
Continuons nos cours de programmation en nous attardant maintenant sur les conditions.
Les conditions
Au quotidien, nous devons faire des choix. Et les actions réalisées dépendent de ces choix ou de ces conditions. Comme par exemple :
- s’il fait beau dimanche
- alors j’irai à la plage,
- sinon j’irai au cinéma.
Eh bien en informatique, cela est fréquent. Le programme va prendre des directions différentes en fonction des conditions.
Reprenons nos calculs avec les âges et regardons une condition toute simple.
(n’oubliez pas de lancer votre environnement de développement : en cliquant ici : https://www.jdoodle.com/python-programming-online )
Exemple
Ici, nous regardons si la valeur de la variable « age » est strictement inférieure à 10, et si c’est le cas nous affichons un message.
age = 8; if age<10: print "tu es bien jeune !";
PS : Si vous voulez essayer ce code et le saisir manuellement, il faut décaler le « print » vers la droite (on dit « indenter ») en utilisant la touche « Tabulation ». (les 2 flèches l’une au-dessus de l’autre complètement à gauche de votre clavier).
Si vous cliquez sur « Execute », vous comprenez aisément que le programme doit afficher le message. (Car la condition est vraie).
Syntaxe de la condition
Avant d’aller plus loin, regardons la syntaxe de la condition.
Tout commence par le mot clé : « if » suivi d’une condition et terminé par « : ». Si je met un peu de couleur, ça donne ça :
if condition :
On pourrait traduire cela comme ça :
Si condition est vraie alors exécute ce qui suit.
et parfois on peut rajouter :
Sinon alors exécute ce qui suit.
dans ce cas, on utilise le mot clé « else ».
Conditions multiples
Parfois, un seul test ne suffit pas, il faut en enchaîner plusieurs. Nous utiliserons alors la syntaxe suivante :
if condition est vraie alors exécute ce qui suit
sinon si condition est vraie alors exécute ce qui suit
… (on pourrait en rajouter d’autres)
sinon alors exécute ce qui suit.
Voici un exemple avec conditions multiples : (regardez le « if », « elif » et « else »)
age=10; if age<0: print "c'est bizarre"; elif age<18: print "c'est un enfant"; else: print "c'est un adulte";
L’indentation
Si vous regardez attentivement l’exemple du dessus, et comme je vous l’expliquais plus haut, les lignes qui suivent une condition sont indentées (décalées vers la droite à l’aide de la touche Tabulation). La 1ère ligne non indentées suivant les lignes indentées ne fait pas partie de la condition et sera donc toujours exécutée.
Voici un exemple :
ligne 1; ligne 2; lf condition: ligne 3; ligne 4; ligne 5;
Dans cet exemple, les lignes 3 et 4 ne seront exécutées que si la condition est vraie.
Dans certains langages, on peut trouver des syntaxes différentes telles que :
if condition then begin ligne 3; ligne 4; end; ligne 5;
ou encore :
if condition then { ligne 3; ligne 4; } ligne 5;
Dans ces langages, l’indentation n’est pas obligatoire comme en Python, mais elle fortement conseillée pour une meilleure lisibilité du code source.
Autres langages
Dans beaucoup d’autres langages, vous trouverez quelque chose comme « Case » ou « Select case » ou « Switch case » qui va permettre de faire des tests sur tout un groupe de valeurs. Voici un exemple :
Voici un exemple de Case dans un autre langage : Je met cette info uniquement pour votre culture car cela n’existe pas en Python !
variable=4; case variable '0' : print "nul"; '1', '3' : print "chiffre impair"; '2', '4' : print "chiffre pair"; end case;
Les opérateurs de condition
Une seule opération ne suffit pas toujours, il faut alors jongler avec plusieurs conditions comme par exemple :
- SI demain il fait beau ET que j’ai suffisamment de temps alors j’irai à la plage.
Il faut que les 2 conditions soient vraies pour que j’aille à la plage.
- SI j’ai de l’argent OU qu’on me paie le ticket alors j’irai au cinéma.
Il faut que l’une des 2 conditions soit vraie pour que j’aille au cinéma.
- SI (j’ai de l’argent OU qu’on me paie le ticket)
ET qu’il y a un bon film alors j’irai au cinéma.
Il faut que l’une des conditions de la première ligne soit vraie et que la condition de la 2ème ligne soit vraie pour que j’aille au cinéma.
Attention : j’ai mis la condition sur 2 lignes uniquement pour la clarté et la lisibilité mais en programmation vous n’êtes pas obligé de faire pareil !
A retenir :
Les opérateurs de conditions sont au nombre de 3 :
(dans certains langages vous pouvez en avoir d’autres, mais je me limite à ces 3 que vous trouvez absolument partout).
Si nous avons 2 conditions C1 et C2.
- AND (et) :
Pour que le résultat du test soit vrai, il faut que les 2 conditions C1 et C2 soient vraies.
- OR (ou) :
Pour que le résultat du test soit vrai, il faut que l’une des 2 conditions C1 et C2 soit vraie.
- NOT (non) :
Cela va inverser la réponse aux tests du dessus (soit avec le AND, soit avec le OU).
Cela peut paraître un peu obscur, mais avec un peu de pratique vous devriez vous y retrouver très facilement.
Nous examinerons quelques exemples plus loin.
Priorités
Vous le voyez bien sur le dernier exemple : on peut mélanger les conditions mais il faut respecter certaines règles car il existe des priorités.
Un peu comme les opérations arithmétiques ont des priorités, les opérateurs ont également des priorités.
Pour bien comprendre, revenons sur les priorités dans les opérations arithmétiques. Regardons les 2 calculs suivants :
x = 1 + 2 x 3 = 7
x = (1 + 2) x 3 = 9
Les opérateurs « x » (multiplication) et « / » (division) sont prioritaires sur « + » (addition) et « – » (soustraction). Pour faire les opérations dans l’ordre souhaité, il faut parfois ajouter des parenthèses.
Avec les opérateurs de conditions, c’est pareil :
- le NOT est le plus prioritaire
- vient ensuite, le AND
- et enfin le OR
Un nouveau type de variable : Les Booléens.
Une condition donne un résultat. Ce résultat ne peut avoir que 2 valeurs : Vrai ou Faux. Ce type de valeur se nomme : Booléen.
- Vrai (True)
- Faux (False)
J’ai mis en italique la valeur « anglaise » d’un booléen. C’est cette valeur que nous utiliserons pour affecter directement nos variables.
Parfois, il peut être intéressant de stocker le résultat d’une condition, pour pouvoir l’utiliser ultérieurement. (Exactement comme nous affectons des valeurs à des variables pour pouvoir les utiliser).
Dernière remarque, et pas la moins importante : True et False doivent forcément s’écrire avec la 1ère lettre majuscule !
Quelques exemples !
Voici des exemples d’utilisation de type booléen.
Exemple 1 :
Cet exemple n’a comme seul seul objectif que de vous montrer le fonctionnement d’une variable de type booléen.
ma_variable = False; if ma_variable: print "ma_variable = VRAI" else: print "ma_variable = FAUX";
Regardez en détail le test : if ma_variable: Il n’est pas nécessaire de mettre le test puisque la variable contient un booléen comme un résultat de test.
Exemple 2 :
Dans cet exemple, je vous montre qu’on peut affecter le résultat d’un ou plusieurs tests à une variable.
a=-5; b=10; mon_test = (a>=0) and (b<15); if mon_test: print "Mon test est vrai"; else: print "soit a est negatif, soit b est superieur ou egal a 15 ou les deux";
Voila, c’est ici que ce termine ce chapitre sur les conditions en programmation.
Prochaine étape : Les boucles.
Retrouvez l’ensemble des articles sur la programmation :
-
Langage de programmation
-
Apprendre la programmation
Merci,
Est ce que vous pourriez faire un cours sur la fonction len et sur les tuples ? S’il vous plaît
Bonjour Léa,
je le note dans un coin et je m’y mettrai quand j’aurai un peu de temps (et j’en manque pas mal en ce moment)
A bientôt