Ressources Magic Makers

 

Site en maintenance

 
Nous sommes actuellement entrain de mettre à jour les ressources de ce site.
Pendant la mise à jour vous pouvez retrouver tous les nouveaux contenus sur le site
 

https://lp-magicmakers.fr/

 
 

Les conditions Python

Présentation des conditions

On a vu comment exécuter du code, le répéter, il ne nous manque maintenant plus qu’une notion fondamentale en informatique : les conditions ! Elles vont nous permettre de prendre des décisions, c’est à dire 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 tableaux ; 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é !

Les différents opérateurs

 

Les opérateurs de comparaisons généraux

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é :

    • Il marche pour tous les types de base (int, float, str)
    • Il teste si les deux variables ont la même valeur
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 !"

Ensuite, on peut aussi utiliser !=, l’inégalité :

    • Il marche dans les mêmes cas que l’inégalité, si ce n’est qu’il teste que deux variables ont une valeur différente !
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 !

 

Les opérateurs de comparaisons numériques

Il existe d’autres opérateurs de comparaisons, et on va parler des 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 :

    • plus petit que, ou < : renvoie vrai si la valeur de GAUCHE est STRICTEMENT PLUS PETITE que la valeur de DROITE
    • plus grand que, ou > : renvoie vrai si la valeur de GAUCHE est STRICTEMENT PLUS GRANDE que la valeur de DROITE
age = 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 :

      • plus petit ou égal, ou <= : renvoie vrai si la valeur de GAUCHE est PLUS PETITE OU ÉGALE que la valeur de DROITE
      • plus grand ou égal, ou >= : renvoie vrai si la valeur de GAUCHE est PLUS GRANDE OU ÉGALE que la valeur de DROITE
taille = 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 !"

Else (sinon)

Souvent, on va avoir besoin d’exécuter du code si les deux valeurs sont égales, et si elles ne le sont 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 bug, 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 !"

 

Combiner plusieurs opérateurs

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 :

    • Il prend en entrée deux valeurs
    • Il ne prend que des bool en entrée
    • Il renvoie True si les deux valeurs sont True, False sinon
    • Utilisé surtout pour faire des « plages » de valeurs acceptées
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 !"

Vu que les opérateurs de comparaisons renvoient des bool, on peut les utiliser dans un and directement !

 

Il existe aussi l’opérateur or, similaire à and :

    • Il prend en entrée deux valeurs
    • Il ne prend que des bool en entrée
    • Il renvoie True si au moins une des deux valeurs vaut True
    • Utilisé surtout si on veut avoir plusieurs valeurs possibles (par exemples plusieurs mots de passes secrets)
nom = "Glorf"
if nom == "Glorf" or nom == "Xefi":
    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 nom == "Glorf" or nom == "Xefi" or nom == "JUL":

Boucle & Condition

Il est bien sûr possible d’utiliser des conditions en combinaison avec des boucles : on va très souvent parcourir un tableau avec une boucle. Voici quelques exemples d’utilisations :
    • compter les éléments qui vérifient une certaine condition : tous les nombres positifs, ceux qui mesurent plus d’un mètre 80, ceux qui s’appellent « Adrien » …
    • Trouver des éléments qui vérifient une certaine condition
    • Afficher des éléments qui vérifient une certaine condition
    • Bien sûr, ce n’est pas exhaustif !

Pour cela, on va devoir définir deux blocs de code : le bloc de la boucle, et le bloc de la condition, qui vont devoir être imbriqués. On va donc utiliser (encore) l’indentation, mais cette fois ci on aura un espace pour le premier bloc, et un autre espace pour le deuxième bloc (pas d’inquiétude, Sublime le fait pour nous automatiquement !) :

 
 
On peut bien sûr utiliser des else avec le if ici !

Quelques exemples d'utilisation

Compter le nombre de personnes majeures :
ages = [5, 3, 18, 21, 24, 12, 54]
nombre_majeurs = 0
for age in ages:
    if age >= 18:
        nombre_majeurs += 1
print("Il y a " + str(nombre_majeurs) + " adultes !")
>> "Il y  a 4 adultes !")

Afficher un message spécial à tous les Guillaume :

animateurs = ["Guillaume", "Adrien", "Jade", "Xefi", "Guillaume"]
for nom in animateurs:
    if nom == "Guillaume":
        print("Bonjour Grand maître !!!")
>> "Bonjour Grand maître !!!"
"Bonjour Grand maître !!!"

Trouver s’il existe quelqu’un qui mesure 1m72 :

tailles = [1.72, 1.56, 1.92, 1.76, 1.65, 2.01]
if 1.72 in tailles:
    print("Quelqu'un fait la même taille que JUL !")

Ici, on n’utilise pas une boucle, mais le mot clé in, qui fait la recherche pour nous ! C’est quand même plus simple à écrire 🙂