Apprendre python(2/4) : les conditions et les boucles

Auteur: Winkin Adrien

Publié le 04-09-2024 | Catégorie: Langage python


les conditions et les boucles en python

Après avoir vu un certain nombre de concepts de base, il est temps d'aborder les boucles et les conditions en python qui sont des concepts primordiaux et absolument essentiels à maitriser pour espérer progresser en python. Je vous conseille d'ouvrir votre éditeur de code en suivant cet article.

Les conditions

Les conditions sont simplement des blocs de code qui s'exécutent sous certaines conditions. Nous pouvons par exemple tester la valeur d'une variable pour savoir si on rentre dans un bloc d'instruction ou non.

Condition simple (if)

L'instruction if est utilisée pour exécuter un bloc de code seulement si une condition est vraie. Voyons cela avec un exemple.

Exemple

    age = 20

    if age >= 18:
        print("Vous êtes majeur.")

Dans cet exemple, le message "Vous êtes majeur." s'affiche seulement si la variable age est supérieure ou égale à 18. Si age était initialisé par exemple à 15, rien ne se serait passé.

Le bloc "if else"

Dans le même esprit que le "if" seul, le bloc "if else" permet d'ajouter un bloc de code qui sera exécuté lorsque la condition dans le "if" n'est pas respectée. Voyons également cela avec un exemple.

Exemple

    age = 20

    if age >= 18:
        print("Vous êtes majeur.")
    else:
        print("Vous êtes mineur.")

J'ai simplement rajouter le bloc "else" au code du premier exemple. Ici, lorsque la variable testée (age) remplira la condition (age >= 18), le bloc d'instruction "if" s'exécutera. Dans l'autre cas, le bloc d'instruction "else" s'executera.

La sous-condition "elif"

Le bloc "elif" rajoute simplement une condition supplémentaire au bloc "if else". De cette façon, nous pouvons vérifier plusieurs variables ou plusieurs caractéristique d'une variable. Comme toujours, voyons cela avec un exemple.

Exemple

    age = 17

    if age >= 18:
        print("Vous pouvez aller à cette soirée et boire de l'alcool.")
    elif age >= 16:
        print("Vous pouvez juste aller à cette soirée.")
    else:
        print("Vous êtes trop jeune pour aller à cette soirée.")    

Cette exemple contrôle simplement la variable "age", montrant les conditions d'accès à une soirée en fonction de la valeur de cette variable. Dans cette exemple, le code retournera "Vous pouvez juste aller à cette soirée."

Les opérateurs logiques

Cet article sur les conditions et les boucles est un excellent moyen d'introduire les opérateurs logique en python. Il en existe 3 principaux :

  • and (et)
  • or (ou)
  • not (pas)

Vous utiliserez essentiellement les 2 premiers. Lorsque l'on utilise "and", c'est pour faire en sorte de valider plusieurs condition en même temps avant d'accéder à un certain bloc de code. Lorsque l'on utiliser "or", c'est pour faire en sorte qu'il n'y ait qu'une seule condition parmi toutes celles énoncées pour entrer dans un certain bloc de code. Voyons cela avec des exemples.

Exemples

    age = 19
    habits = "correct"

    if habits == "correct" and age >= 18:
        print("vous pouvez rentrer dans la boite")
    else:
        print("vous ne pouvez pas rentrer")

Dans cet exemple, les 2 conditions sont remplies et nous pouvons donc entrer dans le bloc "if" qui affichera simplement "vous pouvez rentrer dans la boite".

    age = 16
    est_accompagne = True

    if age >= 18 or est_accompagne == True:
        print("vous pouvez rentrer dans la boite")
    else:
        print("vous ne pouvez pas rentrer")

Dans cet exemple, une seule des 2 conditions doit être validée pour pouvoir entrer dans le bloc "if". Dans ce cas précis, la variable est_accompagne est bien égale à True (un booléen).

Les boucles

Les boucles sont un concept indispensable de tout langage de programmation. On utilise les boucles lorsque l'on veut que notre programme exécute plusieurs fois un bloc d'instruction. Il existe 2 boucles en python, la boucle for et la boucle while.

La boucle for

La boucle for est utilisée pour parcourir une séquence (comme une liste, un tuple, ou une chaîne de caractères) et exécuter un bloc de code pour chaque élément. Voyons cela avec un exemple.

Exemple

    fruits = ["pomme", "banane", "cerise"]

    for fruit in fruits:
        print(fruit)    

La variable fruits est donc une liste et la boucle récupère chaque élément de cette liste pour l'afficher individuellement de la façon suivante :

Apprendre python : les conditions et les boucles

La boucle while

La boucle while répète un bloc de code tant qu'une condition est vraie. Attention cependant, une boucle while mal construite peut créer une boucle infinie si la condition ne devient jamais fausse. Voyons cela avec un exemple.

Exemple

    compteur = 5

    while compteur > 0:
        print(compteur)
        compteur -= 1  

Dans cet exemple, la variable compteur est initalisée à 5. Lorsque l'on entre dans la boucle while, on affiche la valeur de cette variable et on diminue sa valeur de 1 à chaque itération jusqu'à ce que la variable compteur atteigne la valeur 1 (là, on sortira de la boucle).

Conclusion et challenge

Finalement, vous avez maintenant les clés en main pour réaliser des programmes d'une envergure moyenne. Comme la programmation s'apprend essentiellement par la pratique, je vais vous donner l'opportunité de pratiquer avec un challenge (qui fait un peu cas d'école je l'avoue mais il n'en n'est pas moins efficace).

Challenge

Créez un programme qui demande à l'utilisateur de deviner un nombre entre 1 et 100. Le programme doit donner des indices ("trop haut" ou "trop bas") et permettre à l'utilisateur de réessayer jusqu'à ce qu'il trouve la bonne réponse. Pour les plus motivés, vous pouvez ajouter des fonctionnalités supplémentaires pour rendre le jeu plus intéressant, comme limiter le nombre de tentatives et afficher un message spécifique lorsque l'utilisateur gagne ou perd.

Indice

Voici le code python nécessaire pour générer un nombre aléatoire :

    import random

    nombre_aleatoire = random.randint(1, 100) 

Correction

Voici une correction possible pour ce programme (il vous suffit de cliquer sur le bloc noir pour afficher le code).

    import random

    nombre_aleatoire = random.randint(1, 100)
    nombre_user = 0
    veux_rejouer = "1"
    tentative_max = 7
    
    print("Bonjour et bienvenue dans ce jeu.)
    print("Vous devez tenter de trouver le nombre mystère, un entier situé dans l'intervale [1,100].")
    
    while nombre_aleatoire != nombre_user and veux_rejouer=="1" and tentative_max >0:
        nombre_user = input("Quel est votre nombre? ")
        if int(nombre_user) < 1 or int(nombre_user) > 100:
            print("Choisis un nombre compris entre 1 et 100 stp.")
        else:
            if int(nombre_user) == int(nombre_aleatoire):
                print("Félicitation mon garçon, tu as gagné.")
                veux_rejouer = input("Tu veux rejouer? (si oui, tape 1, sinon, tape 0)")
                if veux_rejouer =="1":
                    tentative_max = 7
                else:
                    print("Au revoir")
                veux_rejouer = input("Tu veux rejouer? (si oui, tape 1, sinon, tape 0)")
            elif int(nombre_aleatoire) > int(nombre_user):
                print("Hé non mon copain, c'est plus.")
                tentative_max = tentative_max -1
                if tentative_max == 0:
                    print("T'as perdu mon foufou !")
                    veux_rejouer = input("Tu veux rejouer? (si oui, tape 1, sinon, tape 0)")
                    if veux_rejouer =="1":
                        tentative_max = 7
                    else:
                        print("Au revoir")
            else:
                print("Hé non mon copain, c'est moins.")
                tentative_max = tentative_max -1
                if tentative_max == 0:
                    print("T'as perdu mon foufou !")
                    veux_rejouer = input("Tu veux rejouer? (si oui, tape 1, sinon, tape 0)")
                    if veux_rejouer =="1":
                        tentative_max = 7
                    else:
                        print("Au revoir")

Il est important de noter que ce programme est loin d'être parfait. Il contient un certain nombre de fonctionnalités mais il ne gère pas toutes les erreurs (par exemple, si le joueur rentre autre chose qu'un entier, le programme va crasher). Il n'est pas non plus optimisé. C'est un programme d'une grosse envergure pour des apprenants du niveau de l'article. Ne soyez pas trop durs avec vous-même et continuez de pratiquer autant que possible. Tout le monde peut y arriver !

Apprendre python : les conditions et les boucles


Laisser un commentaire:





©dictioweb.com

En savoir plus

Si vous avez des questions, vous souhaitez en savoir plus sur les modalités de publication d'article sur ce site ou si vous souhaitez simplement nous contacter, sache que c'est possible en cliquant ici.