Dans cette leçon, nous allons introduire la possibilité pour un programme de prendre des décisions en utilisant l'instruction if
. Nous allons introduire ce concept en utilisant l'exemple de calculer le plus grand de deux nombres (comme la fonction max
). Ce programme contient deux instructions if.
Que se passe-t-il si l'entrée est comme le suivant?
5 2Essayez de déterminer la sortie du programme avant de l'exécuter.
Avez-vous trouvé la sortie correcte? Utilisez le visualiseur si nécessaire.
Faisons l'exercice pas à pas avec une deuxième entrée de test,
3 7Dans les deux premières lignes,
x
prend la valeur 3 (la première ligne d'entrée) et y
la valeur 7. Nous avons ensuite la ligne
if x >= y:Elle vérifie si
x
est plus grand ou égal à y
. Comme 3 est inférieur à 7, c'est faux. En conséquence, les lignes suivantes ne sont pas exécutées (elles sont sautées):
print('(Le maximum est x)') theMax = xPour la prochaine instruction
if y > x:le programme vérifie si y est strictement plus grand que x, ce qui est vrai. Donc les lignes
print('(Le maximum est y)')
et theMax = y
sont exécutées (elles ne sont pas sautées). Et pour finir, la ligne
print('Le maximum est', theMax)est exécutée.
Dans le premier cas que nous avons testé, l'inverse s'est produit: le premier groupe de ligne a été exécuté, le second a été sauté et finalement print('Le maximum est', theMax)
a été exécuté à nouveau.
La structure générale d'une instruction if
- La première ligne,
if «condition»:
est composée de 3 parties: le motif
, la«CONDITION»
qui doit être une expression Vraie/Fausse (plus de détails ci-après) et les deux points:
- Ensuite un block, qui signifie une séries de commandes qui peuvent être sur une ou plusieurs lignes. Python détermine où le block commence en utilisant l'indentation, en d'autres termes, il vous faut mettre le même nombre d'espaces devant chaque ligne du block.
Blocks
Les blocks seront utilisés à pleins d'autres endroits plus tard dans ce cours: Dans les boucles for ou quand vous écrirez vos propres fonctions, pas exemple (Dans d'autres langages, les blocks sont souvent délimités par des accolades
.) Toutes les lignes d'un block doivent avoir la même indentation: elles doivent commencer avec le même nombre d'espaces. Lorsque Python voit qu'une ligne a plus d'espaces, il considère qu'il s'agit d'un nouveau blocks et quand il y a à nouveau moins d'espaces, que le block se termine.{}
Vous allez maintenant vous entraîner avec les blocks Python. Le prochain exercice est en fait quatre exercices en un. Vous allez arranger les lignes du programme pour obtenir différents résultats. Cliquez sur les barres verticales pour pour ouvrir chaque partie; vous pouvez les faire dans n'importe quel ordre. Comme vous avez l'habitude maintenant, cliquez et déplacez les lignes de code pour les réarranger.
True, False, et bool
Jusqu'à présent, dans la partie «condition»
de l'instruction if
, nous avons vu de simples comparaisons numériques comme x > y
et x <= y
, qui sont évaluées comme étant vraies ou fausses. Plus généralement, n'importe quelle expression ou valeur qui est vraie ou fausse est appelée Booléenne (en référence à George Boole). En Python, le type bool
est utilisé pour représenter des valeurs booléennes; il n'existe que deux valeurs booléennes, True
(Vrai) et False
(Faux).
Notez qu'en Python, quand vous utilisez les valeurs booléennes True
et False
directement dans un programme, elle doivent être écrites avec une majuscule en premier sinon vous obtiendrez une erreur.
Comparaisons Booléennes
Nous avons déjà rencontré la famille des opérateurs <
, >
, <=
et >=
qui comparent deux nombres et renvoie un bool. Il y a deux autres manières de comparer des nombres:
x == y
est l'opérateur d'égalité, il retourneTrue
si x et y sont égauxx != y
est l'opérateur de non-égalité, il retourne True si x et y ne sont pas égaux==
et!=
fonctionnent aussi pour les chaînes de caractères et d'autres types de données
(Il y a deux signes égaux ==
puisque le signe égal à déjà comme signification dans x = «expression»
d'assigner à la variable x la valeur d'«expression». Confondre =
avec ==
est une erreur courante source d'erreurs.)
Voici un exercice pour commencer.
Nous venons d'introduire le concept de block (quelques lignes groupées ensembles au même niveau d'indentation). Vous pouvez avoir un block au sein même d'un autre block:
if password=='ouvreToiSésame': print('Utilisateur enregistré.') if heure>17: print('Bonsoir!') print('Entrez une commande:')Ici le block extérieur est constitué de 4 lignes et le block intérieur d'une seule ligne:
if password=='ouvreToiSésame':print('Utilisateur enregistré.')
if heure>17:print('Bonsoir!')print('Entrez une commande:')
if
s imbriquésheure>17
est fausse (et le bloc interne est sautée), la ligne print('Entrez une commande:')
du bloc externe sera exécutée.Plus tard, dans la leçon 9, nous verrons que des situations impliquants plusieurs vérifications booléenne peuvent être simplifiées en utilisant les commande else
et elif
(else if) en même temps que les opérateurs booléens and
, or
, et not
. Vous êtes prêt à passer à la leçon suivante.