Les conditions vont nous permettre de n’exécuter certains blocs de code que si une condition est vraie. Par exemple, on peut afficher un code secret uniquement si le mot de passe a la bonne valeur !
On va devoir définir un bloc de code, comme pour les boucles ; on va donc utiliser la même structure, un « :
» au début du bloc, et ensuite une indentation au début de chaque ligne. Par contre, on n’utilisera pas for
mais if
(en anglais, « si ») comme mot clé !
Maintenant, il va falloir mettre quelque chose à la place de condition
. On va donc utiliser des opérateurs de comparaisons : c’est une syntaxe spéciale qui va comparer deux variables (ou une variable et une valeur fixe), et renvoyer soit True
, soit False
: ils renvoient en fait des bool !
L’opérateur le plus utilisé est sans aucun doute ==,
l’égalité :
age = 13 nom = "Glorf" taille = 1.82 if age == 13: print("Bravo, tu peux t'inscrire en Teen 1 !") if nom == "Xefi": print("Tu es le maître de l'IA, bravo !!") if taille == 1.98: print("Tu es aussi grand que Michael Jordan !!") >> "Bravo, tu peux t'inscrire en Teen 1 !"
On peut aussi utiliser !=
, l’inégalité :
age = 13 nom = "Glorf" taille = 1.82 if age != 9: print("Tu ne peux pas t'inscrire en Mini 1 :(") if nom != "Glorf": print("Tu n'es pas le maître de Minecraft, imposteur !") if taille != 1.72: print("Tu ne fais pas la même taille que JUL, dommage !") >> "Tu ne peux pas t'inscrire en Mini 1 :(" >> "Tu ne fais pas la même taille que JUL, dommage !"
Attention ! Il est important de comparer des variables (ou des valeurs) de même type ! On peut comparer une str et un int, mais cela sera toujours False
, même si les deux ont « l’air » identique : « 1 » et 1 ne sont pas la même chose !
Il existe d’autres opérateurs de comparaisons pour les comparaisons numériques : ils comparent aussi deux variables (ou une variable et une valeur), mais celles si doivent être de type int ou float (on peut comparer un int avec un float directement). Par contre, l’ordre est important !
Il en existe 2 :
<
: renvoie vrai si la valeur de GAUCHE est STRICTEMENT PLUS PETITE que la valeur de DROITE>
: renvoie vrai si la valeur de GAUCHE est STRICTEMENT PLUS GRANDE que la valeur de DROITEage = 13 if age < 10: print("Tu peux t'inscrire en Mini 1 !") if age > 12: print("Tu peux t'inscrire en Teen 1 !") >> "Tu peux t'inscrire en Teen 1 !"
Attention, ces deux opérateurs testent STRICTEMENT, c’est à dire que si les deux valeurs sont égales, ils renverront False
!
Ces deux opérateurs existent aussi en version non strictes : ils renvoient aussi vrai si les deux valeurs sont égales :
<=
: renvoie vrai si la valeur de GAUCHE est PLUS PETITE OU ÉGALE que la valeur de DROITE=
: renvoie vrai si la valeur de GAUCHE est PLUS GRANDE OU ÉGALE que la valeur de DROITEtaille = 1.96 if taille < 1.72: print("Tu es plus petit que Jul !") if taille >= 1.96: print("Tu es au moins aussi grand que Michael Jordan !") >> "Tu es au moins aussi grand que Michael Jordan !"
Souvent, on va avoir besoin d’exécuter du code si une condition est vraie, et un autre code si elle ne l’est pas, comme ceci :
motdepasse = "carotte" if motdepasse == "antonin": print("Tu as débloqué le code secret !") if motdepasse != "antonin": print("Sors de là, intrus !") >> "Sors de là, intrus !"
C’est un peu long à écrire comme ça, et il y a beaucoup de redite (et en informatique, on n’aime pas se répéter, car c’est une grosse source de bugs, et ça prend du temps !). On va donc utiliser une construction différente, le else
(en anglais : « sinon »), qu’on doit placer juste après notre bloc if
. Le else exécutera le code dans le bloc adapté si la condition du if est fausse.
En pratique, notre code de mot de passe sera celui ci :
motdepasse = "carotte" if motdepasse == "antonin": print("Tu as débloqué le code secret !") else: print("Sors de là, intrus !") >> "Sors de là, intrus !"
De plus ici le code dans le else sera exécuté si, et seulement si, le code du if ne s’est pas exécuté.
Parfois on peut avoir, envie de vérifier une seconde condition seulement si la première n’est pas vrai. On utilisera alors le elif comme ceci :
nombre = 3
if nombre < 4:
nombre += 1
elif nombre == 4:
print(‘mon nombre est 4’)
else:
nombre -= 4
Remarque ici que le nombre est inférieur à 4, donc on l’augmente de 1.
Il est ensuite égal à 4, mais le print ne s’effectuera pas puisque cette condition n’est vérifiée que dans le cas où le premier if n’est pas vrai.
Il peut arriver que l’on ai besoin de rassembler plusieurs opérateurs de comparaisons entre eux, le plus souvent avec les opérateurs numériques.
L’opérateur le plus fréquent est and
:
True
si les deux conditions sont vraies, sinon il renvoie False
age = 14 if age >= 7 and age <= 15: print("Tu peux t'inscrire chez Magic Makers !") else: print("Dommage, tu n'as pas le bon âge !") >> "Tu peux t'inscrire chez Magic Makers !"
Il existe aussi l’opérateur or
, similaire à and
:
True
si au moins une des deux conditions est vraienom = "MagicAnim" if nom == "MagicAnim" or nom == "SuperAnim": print("Bienvenue grand maître du Python !") else: print("Bienvenue, es-tu prêt à apprendre les arcanes du Python ?") >> "Bienvenue grand maître du Python !"
On peut combiner plusieurs or
(ou plusieurs and
) bien sûr :
if mode == "DEBUG" or nom == "SuperAnim" and motdepasse == "JaimeLeCode":
À noter que lorsque des and et des or sont utilisés dans une même condition, les and sont toujours évalués avant les or.
Nous avons vu comment vérifier qu’une condition est vraie, mais parfois on peut avoir envie de vérifier qu’une condition n’est pas vraie, qu’elle soit strictement fausse.
variable = True
if not variable == True:
print('vrai')