Les conditions en Python¶
Jusqu'à présent, Python exécutait toujours toutes nos lignes les unes après les autres, de haut en bas.
Mais croyez-le ou non, il existe des situations où l’on peut vouloir que certaines lignes ne s’exécutent que dans certains cas.
Et c'est pour ça qu'on va introduire ici : les conditions.
Le mot clef if¶
"If" en anglais veut dire "si".
Et c’est exactement son rôle en Python : on va exécuter un bloc de code si une condition est vraie.
Ainsi ce programme
age = 17
if age < 18: # Cette condition est vraie
print("Vous êtes mineur") # Donc cette ligne est exécutée
affiche Vous êtes mineur, alors que celui-ci
age = 19
if age < 18: # Cette condition est fausse
print("Vous êtes mineur") # Donc cette ligne n'est pas exécutée
n’affiche rien du tout.
Notez qu'on peut imbriquer les conditions les unes dans les autres comme ceci :
age = 17
if age < 21:
print("Vous êtes mineur aux Etats-Unis")
if age < 18:
print("Vous êtes mineur en France")
Ce programme affiche donc
Vous êtes mineur aux Etats-Unis
Vous êtes mineur en France
Attention : l’indentation est obligatoire¶
Les lignes à l’intérieur du if doivent être décalées (tabulation). C'est ce décalage qui détermine quelles lignes sont à l'intérieur du bloc if et lesquelles ne le sont pas.
Les opérateurs de comparaison¶
Pour écrire des conditions, il existe 6 opérateurs de comparaison principaux, qui sont les suivants :
| Opérateur | Signification | Exemple | Résultat |
|---|---|---|---|
== |
Est égal à | 5 == 5 |
True |
!= |
Est différent de | 5 != 3 |
True |
> |
Strictement supérieur à | 5 > 3 |
True |
< |
Strictement inférieur à | 5 < 3 |
False |
>= |
Supérieur ou égal à | 5 >= 5 |
True |
<= |
Inférieur ou égal à | 3 <= 5 |
True |
Chacun d'eux renvoie donc toujours booléen. Si ce booléen correspond à True, alors le bloc de code dans la condition est exécuté, sinon il est sauté.
Attention à ne pas confondre
=sert à assigner une variable==sert à comparerC’est l’une des erreurs les plus fréquentes chez les débutants.
Quizz¶
Voici un code Python
taille = 1.79
if taille >=1.9:
print("Tu es grand")
if taille >= 1.7:
print("Tu es moyen")
Qu'affiche donc ce programme lorsqu'on l'exécute ?
- Tu es grand
- Tu es moyen
- Tu es grand Tu es moyen (avec un retour à la ligne entre les 2)
- *Il n'affiche rien du tout
> Comme la première comparaison renvoie faux, le programme ne rentre jamais dans le bloc de code, et donc n'affiche rien.
Les opérateurs logiques¶
On peut également combiner les conditions entre elles à l'aide des mots clefs and, or et not.
# and : les deux conditions doivent être vraies
if age >= 18 and pays == "France":
print("Vous pouvez voter en France")
# or : au moins une condition doit être vraie
if est_etudiant or est_chomeur:
print("Vous avez droit à une réduction")
# not : inverse la condition
if not est_banni:
print("Vous pouvez poster un message")
elif et else¶
"Else" en anglais signifie sinon, et c'est exactement ce qu'il fait en Python. Il vient toujours après un if et récupère les cas donc le if n'a pas voulu (les rejetés de la société). Par exemple,
age = 19
if age < 18:
print("Vous êtes mineur")
else:
print("Vous êtes majeur")
affichera
Vous êtes majeur
"Elif" quant à lui est la contraction de "else" et "if", et donc il va combiner leur fonctionalité. En n'acceptatant que les cas qui n'ont pas été accepté jusqu'ici, mais également qui respectent la condition correspondante. Par exemple,
age = 19
if age < 18:
print("Vous êtes mineur")
elif age < 21:
print("Vous êtes majeur en France mais pas aux Etats-Unis")
else:
print("Vous êtes majeur partout (je crois)")
affiche
Vous êtes majeur en France mais pas aux Etats-Unis
Exercice pratique¶
Dans un magasin :
- Les moins de 18 ans ont 30% de réduction.
- Les étudiants de moins de 25 ans ont 15% de réduction.
- Les autres paient prix normal.
Écrivez un programme qui :
- Demande le prix initial
- Demande l’âge
- Demande si l’utilisateur est étudiant (si nécessaire)
- Affiche le prix final
Pour vous aider à bien comprendre voici quelques exemple d'exécutions.
Quel est le prix de vos achats ? 20
Quel est votre âge ? 17
Vous devez payer 14.0 euros.
Quel est le prix de vos achats ? 30
Quel est votre âge ? 22
Etes vous étudiant ? [o/n] o
Vous devez payer 25.5 euros.
Quel est le prix de vos achats ? 15
Quel est votre âge ? 35
Vous devez payer 15.0 euros.
Si vous aviez déjà quelque bases de programmations avant ce tutoriel, vous pouvez plutôt choisir de faire un chifumi où après que chaque joueur ait choisi quel symbole il joue, l'ordi dit qui a gagné. Il faudra trouver un moyen bien efficace de traiter tous les cas sans que ça ne devienne trop galère.
En résumé¶
Les conditions permettent de choisir dynamiquement quelles lignes sont exécutées.
| Mot clé | Rôle |
|---|---|
if |
Exécuter un bloc si la condition est vraie |
elif |
Tester une autre condition, si les précédentes ont échoué |
else |
Attraper tous les autres cas |
and, or, not |
Combiner / inverser les conditions |
Mais il existe une autre structure de contrôle encore plus importante, qu'on appelle les boucles.
(Suite au prochain épisode !)