Salut, futurs développeurs Python !
Les boucles et les conditions sont les piliers de la programmation. Sans elles, impossible de créer des programmes dynamiques et intelligents. Que tu sois en licence, master ou que tu souhaites simplement renforcer tes bases en Python pour l'université, cette série d'exercices est conçue pour t'offrir un entraînement progressif et rigoureux. Prêt à coder ?
Compétences travaillées :
- Utilisation des boucles
foretwhilepour l'itération. - Application des structures conditionnelles
if,elifetelse. - Développement de fonctions Python.
- Résolution de problèmes algorithmiques simples à complexes.
- Gestion des cas limites et des erreurs.
Erreurs fréquentes à éviter :
- Indentation : En Python, l'indentation définit les blocs de code. Une mauvaise indentation entraîne des erreurs !
- Boucles infinies : Oublier de modifier la condition d'arrêt d'une boucle
whilepeut la rendre infinie. - Comparaison vs. Affectation : Utiliser
=(affectation) au lieu de==(comparaison) dans une condition. - Hors limites (IndexError) : Accéder à un index inexistant dans une liste ou une chaîne.
- Logique incorrecte : Des conditions mal formulées peuvent mener à des résultats inattendus. Teste toujours tes codes avec différents scénarios.
La série d'exercices : Python - Boucles et Conditions
Exercice 1 : Afficher des nombres pairs (Facile)
Écris un programme Python qui utilise une boucle for pour afficher tous les nombres pairs de 1 à 10 inclus. (3 points)
Correction :
On utilise range(1, 11) pour générer les nombres de 1 à 10. Ensuite, une condition if vérifie si le nombre est pair (modulo 2 est égal à 0).
for i in range(1, 11):
if i % 2 == 0:
print(i)
Résultat attendu :
2
4
6
8
10
Astuce : La fonction range(start, stop) génère des nombres de start jusqu'à stop-1. Si tu veux inclure stop, utilise stop+1.
Exercice 2 : Vérifier un nombre positif (Facile)
Écris un programme qui demande à l'utilisateur de saisir un nombre entier. Affiche "Le nombre est positif" si le nombre est supérieur à 0, et "Le nombre n'est pas positif" sinon. (3 points)
Correction :
On utilise input() pour obtenir la saisie de l'utilisateur et int() pour la convertir en entier. Une structure if/else gère la condition.
nombre = int(input("Saisis un nombre entier : "))
if nombre > 0:
print("Le nombre est positif")
else:
print("Le nombre n'est pas positif")
Exemple de résultat :
Saisis un nombre entier : 5
Le nombre est positif
Point méthode : N'oublie pas de convertir l'entrée de input() qui est toujours une chaîne de caractères en un type numérique si tu veux faire des opérations mathématiques ou des comparaisons.
Exercice 3 : Compteur avec boucle while (Facile)
Écris un programme Python qui utilise une boucle while pour afficher les nombres de 5 à 1 en ordre décroissant, puis affiche "Décollage !". (4 points)
Correction :
Une variable de compteur est initialisée à 5. La boucle while continue tant que le compteur est supérieur à 0, et est décrémentée à chaque itération.
compteur = 5
while compteur > 0:
print(compteur)
compteur -= 1
print("Décollage !")
Résultat attendu :
5
4
3
2
1
Décollage !
Astuce : Assure-toi toujours que la condition de ta boucle while finira par être fausse pour éviter une boucle infinie. Ici, compteur -= 1 garantit cette fin.
Exercice 4 : Somme des nombres pairs dans une liste (Moyen)
Écris une fonction Python nommée somme_pairs qui prend une liste de nombres entiers en argument et retourne la somme de tous les nombres pairs de cette liste. (5 points)
# Exemple d'appel :
# ma_liste = [1, 2, 3, 4, 5, 6]
# print(somme_pairs(ma_liste)) # Doit afficher 12 (2+4+6)
Correction :
La fonction initialise une somme à 0, puis itère sur chaque élément de la liste avec une boucle for. Une condition if vérifie si l'élément est pair avant de l'ajouter à la somme.
def somme_pairs(liste_nombres):
somme = 0
for nombre in liste_nombres:
if nombre % 2 == 0:
somme += nombre
return somme
# Test
ma_liste = [1, 2, 3, 4, 5, 6]
print(somme_pairs(ma_liste))
ma_liste_2 = [10, 15, 20, 25]
print(somme_pairs(ma_liste_2))
Résultat attendu pour l'exemple :
12
30
Point méthode : Décomposer le problème en petites étapes (initialiser, parcourir, vérifier, ajouter) est une bonne pratique. N'oublie pas le return à la fin de ta fonction.
Exercice 5 : Vérifier si un nombre est premier (Moyen)
Écris une fonction Python nommée est_premier qui prend un entier positif n en argument et retourne True si n est un nombre premier, False sinon. (6 points)
Rappel : Un nombre premier est un entier naturel supérieur à 1 qui n'a que deux diviseurs distincts entiers et positifs : 1 et lui-même.
# Exemples d'appels :
# print(est_premier(7)) # Doit afficher True
# print(est_premier(10)) # Doit afficher False
# print(est_premier(1)) # Doit afficher False
Correction :
On gère d'abord les cas spéciaux (inférieur ou égal à 1). Ensuite, on parcourt les nombres de 2 jusqu'à la racine carrée de n. Si n est divisible par l'un de ces nombres, il n'est pas premier.
import math
def est_premier(n):
if n <= 1:
return False
# On teste la divisibilité de 2 jusqu'à la racine carrée de n
# car si n a un diviseur au-delà de sa racine, il en a forcément un en-deçà.
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
# Test
print(est_premier(7))
print(est_premier(10))
print(est_premier(1))
print(est_premier(2))
print(est_premier(29))
Résultat attendu pour l'exemple :
True
False
False
True
True
Astuce : L'optimisation en testant jusqu'à la racine carrée de n est très importante pour l'efficacité de l'algorithme, surtout pour les grands nombres.
Exercice 6 : Jeu de devinette de nombre (Moyen)
Écris un programme Python qui implémente un jeu de devinette. Le programme choisit un nombre aléatoire entre 1 et 100. L'utilisateur doit deviner ce nombre. Le programme indique si la proposition est trop grande ou trop petite, et compte le nombre d'essais. Le jeu se termine lorsque le nombre est trouvé. (7 points)
# Importe le module random
# import random
Correction :
On utilise random.randint() pour le nombre secret. Une boucle while continue tant que le nombre n'est pas trouvé. Des conditions if/elif/else guident l'utilisateur.
import random
def jeu_devinette():
nombre_secret = random.randint(1, 100)
essais = 0
devine = 0 # Initialisation pour entrer dans la boucle
print("Bienvenue au jeu de devinette ! Je pense à un nombre entre 1 et 100.")
while devine != nombre_secret:
try:
devine = int(input("Devine le nombre : "))
essais += 1
if devine < nombre_secret:
print("Trop petit !")
elif devine > nombre_secret:
print("Trop grand !")
else:
print(f"Bravo ! Tu as trouvé le nombre {nombre_secret} en {essais} essais.")
except ValueError:
print("Saisie invalide. Veuillez entrer un nombre entier.")
# Lance le jeu
jeu_devinette()
Exemple de résultat :
Bienvenue au jeu de devinette ! Je pense à un nombre entre 1 et 100.
Devine le nombre : 50
Trop grand !
Devine le nombre : 25
Trop petit !
Devine le nombre : 37
Bravo ! Tu as trouvé le nombre 37 en 3 essais.
Point méthode : La gestion des erreurs avec try-except est une bonne pratique pour rendre ton programme plus robuste face aux saisies utilisateur inattendues.
Exercice 7 : Suite de Fibonacci (Difficile)
Écris une fonction Python nommée fibonacci_suite qui prend un entier n en argument et retourne une liste contenant les n premiers termes de la suite de Fibonacci. (8 points)
Rappel : La suite de Fibonacci commence par 0 et 1. Chaque terme suivant est la somme des deux précédents (0, 1, 1, 2, 3, 5, 8.).
# Exemples d'appels :
# print(fibonacci_suite(0)) # Doit afficher []
# print(fibonacci_suite(1)) # Doit afficher [0]
# print(fibonacci_suite(7)) # Doit afficher [0, 1, 1, 2, 3, 5, 8]
Correction :
On gère les cas n=0 et n=1. Pour n >= 2, on initialise la liste avec les deux premiers termes, puis une boucle while (ou for) ajoute les termes suivants en sommant les deux derniers.
def fibonacci_suite(n):
if n <= 0:
return []
elif n == 1:
return [0]
else:
suite = [0, 1]
while len(suite) < n:
next_fib = suite[-1] + suite[-2] # Somme des deux derniers éléments
suite.append(next_fib)
return suite
# Test
print(fibonacci_suite(0))
print(fibonacci_suite(1))
print(fibonacci_suite(2))
print(fibonacci_suite(7))
print(fibonacci_suite(10))
Résultat attendu pour l'exemple :
[]
[0]
[0, 1]
[0, 1, 1, 2, 3, 5, 8]
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Astuce : Pense toujours aux cas limites (ici, n=0 et n=1) avant de développer la logique principale. L'utilisation de suite[-1] et suite[-2] est pratique pour accéder aux derniers éléments d'une liste.
Exercice 8 : Problème "FizzBuzz" (Difficile)
Écris une fonction Python nommée fizzbuzz qui prend un entier max_nombre en argument. Elle doit parcourir les nombres de 1 à max_nombre et afficher :
- "FizzBuzz" si le nombre est un multiple de 3 et de 5.
- "Fizz" si le nombre est un multiple de 3.
- "Buzz" si le nombre est un multiple de 5.
- Le nombre lui-même sinon.
# Exemple d'appel :
# fizzbuzz(15)
Correction :
Ce problème classique teste la bonne utilisation des conditions avec elif. L'ordre des conditions est important : la condition "FizzBuzz" (multiple de 3 ET 5) doit être vérifiée en premier.
def fizzbuzz(max_nombre):
for i in range(1, max_nombre + 1):
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)
# Test
fizzbuzz(15)
Résultat attendu pour fizzbuzz(15) :
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
Point méthode : L'ordre des conditions if/elif est crucial. Si tu avais mis i % 3 == 0 avant i % 3 == 0 and i % 5 == 0, les multiples de 15 seraient affichés comme "Fizz" et non "FizzBuzz".
Comment ORBITECH Peut T'aider
ORBITECH AI Academy met à ta disposition des outils concrets pour réviser plus efficacement et progresser à ton rythme.
- Générateur de Quiz : crée des quiz personnalisés pour tester tes connaissances et identifier tes lacunes.
- Générateur d'Exercices : crée des exercices d'entraînement adaptés à ton niveau avec corrections détaillées.
- Générateur de Résumés : transforme tes cours en fiches de révision claires et structurées.
- Générateur de Mind Maps : visualise et organise tes idées avec des cartes mentales générées automatiquement.
Tous ces outils sont disponibles sur ta plateforme ORBITECH. Connecte-toi et explore ceux qui correspondent le mieux à tes besoins !
Commencer gratuitement