Un bon exercice Python débutant ne consiste pas seulement à recopier quelques lignes de code. Il doit vous faire manipuler une notion précise, vous obliger à réfléchir avant de consulter la correction et vous montrer comment transformer une idée simple en programme fonctionnel. Je vous propose ici une progression concrète, avec des exercices corrigés sur les variables, les conditions, les boucles, les listes et les petits projets.
Une progression simple pour apprendre Python en pratiquant
- Commencez par 15 à 20 minutes de recherche personnelle avant de regarder une correction.
- Travaillez Python 3 avec des programmes très courts et faciles à tester.
- Progressez dans cet ordre : variables, conditions, boucles, listes, fonctions.
- Testez plusieurs cas, notamment les entrées vides, négatives ou inattendues.
- Construisez un mini-projet dès que vous maîtrisez les notions essentielles.
Par où commencer sans se perdre
Je recommande de travailler dans un éditeur simple comme Thonny ou VS Code, avec Python 3 installé. Pour chaque exercice, créez un fichier séparé, par exemple exercice_01.py, puis exécutez-le après chaque modification. Cette habitude permet de repérer rapidement la ligne qui pose problème.
Un débutant progresse rarement en lisant uniquement des cours. La méthode la plus efficace consiste à lire une consigne, écrire une première solution imparfaite, la tester, puis améliorer le code. Même une erreur de syntaxe devient utile si vous prenez le temps de comprendre ce que Python attendait.
| Étape | Notions travaillées | Objectif pratique |
|---|---|---|
| 1 | Variables et calculs | Manipuler des nombres et du texte |
| 2 |
if, else
|
Faire réagir le programme selon une situation |
| 3 | Boucles for et while
|
Répéter une action sans copier le code |
| 4 | Listes et chaînes | Parcourir et transformer plusieurs données |
| 5 | Fonctions et projet | Organiser un programme plus lisible |
Je conseille de ne pas commencer par les classes, les bibliothèques complexes ou les frameworks web. Ces sujets viendront plus tard. Au début, la clarté du raisonnement compte davantage que la quantité de code produite.

Les premiers exercices pour maîtriser les bases
Afficher un message personnalisé
Demandez le prénom de l’utilisateur et affichez un message de bienvenue. Cet exercice paraît très simple, mais il introduit deux instructions indispensables : input() récupère une information saisie au clavier et print() affiche un résultat.
prenom = input("Quel est votre prénom ? ")
print(f"Bonjour {prenom} !")
La lettre f devant la chaîne permet d’insérer une variable directement dans le texte. Je trouve cet exercice intéressant parce qu’il montre immédiatement que le programme peut recevoir une donnée et produire une réponse.
Calculer l’âge dans cinq ans
Demandez l’âge actuel de l’utilisateur, convertissez la réponse en entier, puis affichez l’âge qu’il aura dans cinq ans.
age = int(input("Quel âge avez-vous ? "))
print(f"Dans cinq ans, vous aurez {age + 5} ans.")
La fonction input() renvoie toujours du texte. Sans int(), Python ne pourrait pas additionner un nombre à cette réponse. C’est une source d’erreurs fréquente, et je recommande de retenir cette règle dès le départ : une saisie numérique doit généralement être convertie.
Vérifier si un nombre est pair
Un nombre est pair lorsque le reste de sa division par 2 est égal à zéro. En Python, l’opérateur % donne ce reste.
nombre = int(input("Entrez un nombre entier : "))
if nombre % 2 == 0:
print("Ce nombre est pair.")
else:
print("Ce nombre est impair.")
Observez bien l’indentation après if et else. Python l’utilise pour délimiter les blocs de code. Une indentation incorrecte peut donc empêcher le programme de fonctionner, même si la logique est juste.
Convertir des minutes en heures
Écrivez un programme qui transforme un nombre de minutes en heures et minutes. Pour 135 minutes, le résultat attendu est 2 heures et 15 minutes.
minutes = int(input("Nombre de minutes : "))
heures = minutes // 60
reste = minutes % 60
print(f"{heures} heure(s) et {reste} minute(s)")
La division entière // donne le nombre complet d’heures, tandis que % récupère le reste. Ce petit problème est excellent pour comprendre que plusieurs opérateurs peuvent être combinés pour modéliser une situation réelle.
Passer aux boucles et aux listes
Les boucles deviennent utiles dès qu’une action doit être répétée. Plutôt que d’écrire dix fois la même instruction, vous décrivez une règle que Python applique plusieurs fois. C’est à ce moment que les exercices cessent d’être de simples calculs et commencent à ressembler à de vrais programmes.
Afficher une table de multiplication
Demandez un nombre et affichez sa table de multiplication de 1 à 10. La fonction range(1, 11) produit les nombres de 1 à 10, car la borne finale n’est pas incluse.
nombre = int(input("Quelle table souhaitez-vous ? "))
for multiplicateur in range(1, 11):
resultat = nombre * multiplicateur
print(f"{nombre} x {multiplicateur} = {resultat}")
Ce programme permet de comprendre le rôle d’une variable de boucle. Ici, multiplicateur change à chaque passage. La subtilité de range() mérite d’être testée immédiatement, car l’oubli de la dernière valeur fait partie des erreurs les plus courantes.
Calculer la somme d’une liste
Créez une liste de nombres et calculez sa somme avec une boucle, sans utiliser directement la fonction sum(). L’objectif est de comprendre le mécanisme avant de découvrir la solution courte.
nombres = [4, 7, 2, 9, 5]
total = 0
for nombre in nombres:
total = total + nombre
print(f"Somme : {total}")
La variable total est un accumulateur. Elle conserve le résultat obtenu au fil des tours. Une fois ce fonctionnement compris, vous pourrez comparer votre solution avec sum(nombres) et constater que les fonctions intégrées simplifient le code sans remplacer la compréhension de base.
Compter les voyelles dans une phrase
Parcourez une phrase et comptez le nombre de voyelles. Pour éviter les problèmes liés aux majuscules, transformez le texte avec lower().
phrase = input("Écrivez une phrase : ").lower()
voyelles = "aeiouy"
compteur = 0
for caractere in phrase:
if caractere in voyelles:
compteur += 1
print(f"Nombre de voyelles : {compteur}")
Ce type d’exercice apprend à parcourir une chaîne caractère par caractère. Il montre aussi une limite importante : les accents ne sont pas traités ici. Pour gérer correctement « é », « è » ou « à », il faudrait enrichir la liste des caractères recherchés.
Transformer les notions en mini-projets
Les exercices isolés sont utiles, mais un mini-projet oblige à combiner plusieurs notions. Je préfère proposer un programme imparfait mais terminé plutôt qu’un tutoriel beaucoup plus ambitieux abandonné au milieu. L’objectif est de faire fonctionner une première version, puis de l’améliorer.
Le jeu du nombre mystère
Le programme choisit un nombre aléatoire entre 1 et 100. L’utilisateur doit le trouver et reçoit une indication après chaque tentative.
import random
secret = random.randint(1, 100)
tentatives = 0
while True:
proposition = int(input("Votre proposition : "))
tentatives += 1
if proposition < secret:
print("C'est plus grand.")
elif proposition > secret:
print("C'est plus petit.")
else:
print(f"Bravo ! Trouvé en {tentatives} tentative(s).")
break
Ce projet rassemble une importation, une boucle while, des conditions et un compteur. Pour le rendre plus solide, ajoutez une limite de 10 tentatives et gérez les entrées qui ne sont pas des nombres avec try et except.
Lire aussi : Couleurs Tkinter - Maîtrisez l'art du design Python
Une liste de tâches en console
Créez un menu qui permet d’ajouter une tâche, d’afficher les tâches et de quitter le programme. Une version minimale peut ressembler à ceci.
taches = []
while True:
print("\n1. Ajouter une tâche")
print("2. Afficher les tâches")
print("3. Quitter")
choix = input("Votre choix : ")
if choix == "1":
tache = input("Nouvelle tâche : ")
taches.append(tache)
elif choix == "2":
for numero, tache in enumerate(taches, start=1):
print(f"{numero}. {tache}")
elif choix == "3":
print("À bientôt.")
break
else:
print("Choix invalide.")
Le programme reste volontairement simple. Il ne sauvegarde pas les tâches après la fermeture et ne permet pas encore de les supprimer. C’est précisément son intérêt : vous pouvez ajouter une seule fonctionnalité à la fois, sans perdre la maîtrise du code.
Les erreurs qui ralentissent le plus les débutants
La plupart des blocages ne viennent pas d’un manque d’intelligence, mais d’une mauvaise méthode de test. Quand un programme ne marche pas, je conseille de réduire le problème à la plus petite version possible et d’afficher les valeurs intermédiaires.
| Erreur fréquente | Pourquoi elle arrive | Réflexe utile |
|---|---|---|
Oublier int()
|
input() renvoie du texte |
Convertir la saisie avant un calcul |
Confondre = et ==
|
L’un affecte une valeur, l’autre compare | Relire les conditions caractère par caractère |
| Dépasser les limites d’une liste | Les positions commencent à zéro | Vérifier la longueur avec len()
|
| Créer une boucle infinie | La condition du while ne change jamais |
Identifier clairement ce qui arrête la boucle |
| Copier une correction trop tôt | La solution semble comprise sans être mémorisée | Fermer la correction et réécrire le code seul |
Je déconseille aussi de tester du code copié au hasard, surtout lorsqu’il manipule des fichiers ou exécute des commandes système. Pour progresser sans risque, utilisez des exemples courts et comprenez chaque ligne avant de l’intégrer à votre projet.
Enfin, ne cherchez pas à supprimer toutes les erreurs immédiatement. Une erreur comme TypeError, ValueError ou IndexError vous donne souvent une indication précise sur le type de problème rencontré. Lire le message d’erreur est une compétence aussi importante que connaître la syntaxe.
Un plan de 7 jours pour ancrer les bases
Pour obtenir des résultats visibles, je vous conseille une séance de 20 à 30 minutes par jour. Le premier jour, reprenez les variables et les conversions. Consacrez les jours suivants aux conditions, aux boucles, aux listes, puis à un mini-projet comme le jeu du nombre mystère.
- Jour 1 : messages personnalisés et calculs simples.
- Jour 2 : nombres pairs, positifs et négatifs.
- Jour 3 : tables de multiplication et compteurs.
- Jour 4 : listes, sommes et recherches.
- Jour 5 : chaînes de caractères et comptage de voyelles.
- Jour 6 : jeu du nombre mystère.
- Jour 7 : amélioration d’un projet sans recopier la correction.
Le meilleur exercice est celui que vous pouvez expliquer avec vos propres mots. Après chaque programme, changez une règle, ajoutez un cas particulier ou réécrivez-le sous forme de fonction. C’est cette petite phase d’adaptation qui transforme une solution copiée en réflexe de programmation durable.