Auteur: Winkin Adrien
Publié le 04-09-2024 | Catégorie: Langage 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 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.
L'instruction if est utilisée pour exécuter un bloc de code seulement si une condition est vraie. Voyons cela avec un 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é.
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.
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.
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.
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."
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 :
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.
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 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 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.
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 :
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.
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).
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).
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.
Voici le code python nécessaire pour générer un nombre aléatoire :
import random nombre_aleatoire = random.randint(1, 100)
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 !