🐍 Introduction à Python
Cours de technologie collège — Apprendre Python en 3e : syntaxe, variables, boucles et exercices corrigés
1. Pourquoi Python ?
2. Premier programme
3. Variables et types
4. Print et Input
5. Opérateurs
6. Conditions (if/elif/else)
7. Boucle for
8. Boucle while
9. Fonctions
10. Tableau Scratch → Python
11. Exercices brevet corrigés
12. Erreurs fréquentes
FAQ
💡 1. Pourquoi Apprendre Python au Collège ?
Python est le langage le plus utilisé pour l'enseignement de la programmation dans le monde. Il est au programme de technologie et de mathématiques en 3e, et sera omniprésent au lycée (SNT en seconde, NSI en première/terminale, maths). Voici ses atouts :
🖥️ 2. Premier Programme en Python
Le programme le plus simple en Python affiche un texte à l'écran avec la fonction print() :
print("Bonjour le monde !")
C'est tout. Une seule ligne. Pas besoin de blocs, de fichiers complexes ou de configuration. Voici les règles fondamentales de Python :
| Règle | Explication | Exemple |
|---|---|---|
| Une instruction par ligne | Chaque ligne de code = une instruction. On ne met pas de point-virgule à la fin. | print("Salut") |
| L'indentation est obligatoire | Les blocs de code (après if, for, while) sont marqués par un décalage de 4 espaces vers la droite. C'est ce qui remplace les accolades des autres langages. | Voir section conditions |
Les deux-points : | Les lignes qui commencent un bloc (if, for, while, def) se terminent par : | if x > 5: |
| Python est sensible à la casse | print ≠ Print ≠ PRINT. Seul print (en minuscules) fonctionne. | Print("Salut") → erreur ❌ |
| Les commentaires | On écrit un commentaire (note ignorée par Python) avec #. Utile pour expliquer le code. | # Ceci est un commentaire |
: à la fin d'une ligne if, for, while ou def. Python affichera SyntaxError. Prenez l'habitude : dès que vous écrivez un de ces mots-clés, ajoutez le : immédiatement.📦 3. Variables et Types de Données
Une variable est un nom qui stocke une valeur en mémoire. En Python, on crée une variable simplement en lui donnant un nom et une valeur avec le signe = :
age = 14 # un entier (int) taille = 1.65 # un nombre à virgule (float) prenom = "Alice" # une chaîne de caractères (str) est_eleve = True # un booléen (bool)
Les 4 types de base
| Type | Nom Python | Description | Exemples |
|---|---|---|---|
| Entier | int | Nombre entier positif ou négatif, sans virgule | 42, -7, 0 |
| Flottant | float | Nombre à virgule (la virgule est un point en Python) | 3.14, -0.5, 100.0 |
| Chaîne | str | Texte, entouré de guillemets simples '...' ou doubles "..." | "Bonjour", '3ème B' |
| Booléen | bool | Vrai ou faux. Seulement deux valeurs possibles. | True, False |
_), mais il ne doit pas commencer par un chiffre. Il ne doit pas contenir d'espaces ni de caractères spéciaux. Les mots réservés de Python (if, for, while, print…) sont interdits comme noms de variable. Exemples valides : score, mon_age, resultat2. Exemples invalides : 2eme ❌, mon age ❌, for ❌.💬 4. Afficher (print) et Saisir (input)
Afficher avec print()
La fonction print() affiche du texte ou des valeurs à l'écran. On peut combiner texte et variables de plusieurs façons :
# Méthode 1 : virgules (ajoute un espace automatiquement) prenom = "Alice" age = 14 print("Bonjour", prenom, "tu as", age, "ans") # Méthode 2 : f-string (la plus moderne et pratique) print(f"Bonjour , tu as ans")
Bonjour Alice, tu as 14 ans
Saisir avec input()
La fonction input() affiche un message et attend que l'utilisateur tape quelque chose au clavier. Elle retourne toujours une chaîne de caractères (du texte).
prenom = input("Comment tu t'appelles ? ") print(f"Salut !")
input() retourne toujours du texte (type str), même si l'utilisateur tape un nombre. Pour faire des calculs avec la réponse, il faut convertir avec int() ou float() :# ❌ ERREUR COURANTE : age = input("Ton âge ? ") # age est un texte "14", pas un nombre print(age + 1) # TypeError ! On ne peut pas additionner texte + nombre # ✅ CORRECT : age = int(input("Ton âge ? ")) # int() convertit le texte en entier print(age + 1) # Fonctionne ! Affiche 15
🔢 5. Les Opérateurs
Opérateurs mathématiques
| Opérateur | Nom | Exemple | Résultat |
|---|---|---|---|
+ | Addition | 7 + 3 | 10 |
- | Soustraction | 7 - 3 | 4 |
* | Multiplication | 7 * 3 | 21 |
/ | Division (résultat décimal) | 7 / 3 | 2.333... |
// | Division entière (quotient) | 7 // 3 | 2 |
% | Modulo (reste de la division) | 7 % 3 | 1 |
** | Puissance | 2 ** 3 | 8 |
% au brevet — L'opérateur modulo donne le reste de la division euclidienne. Il est très utilisé pour tester si un nombre est pair (n % 2 == 0), divisible par 3 (n % 3 == 0), etc. Exemple : 17 % 5 donne 2 car 17 = 5 × 3 + 2.Opérateurs de comparaison
| Opérateur | Signification | Exemple | Résultat |
|---|---|---|---|
== | Égal à | 5 == 5 | True |
!= | Différent de | 5 != 3 | True |
< | Strictement inférieur | 3 < 5 | True |
> | Strictement supérieur | 3 > 5 | False |
<= | Inférieur ou égal | 5 <= 5 | True |
>= | Supérieur ou égal | 3 >= 5 | False |
= et == — = (un seul égal) affecte une valeur à une variable : x = 5 signifie « x prend la valeur 5 ». == (deux égaux) compare deux valeurs : x == 5 signifie « est-ce que x est égal à 5 ? ». C'est le piège le plus classique au brevet et en contrôle.Opérateurs logiques
| Opérateur | Signification | Exemple | Résultat |
|---|---|---|---|
and | ET (les deux conditions doivent être vraies) | 5 > 3 and 2 < 4 | True |
or | OU (au moins une condition doit être vraie) | 5 > 3 or 2 > 4 | True |
not | NON (inverse la condition) | not (5 > 3) | False |
🔀 6. Les Conditions — if / elif / else
Les conditions permettent au programme de prendre des décisions. La structure est :
if condition: # instructions exécutées si la condition est VRAIE elif autre_condition: # instructions exécutées si la 2e condition est VRAIE else: # instructions exécutées si AUCUNE condition n'est vraie
Exemple complet
note = int(input("Ta note sur 20 ? ")) if note >= 16: print("Très bien !") elif note >= 12: print("Bien !") elif note >= 10: print("Assez bien.") else: print("Il faut réviser...")
Python teste les conditions dans l'ordre, de haut en bas. Dès qu'une condition est vraie, il exécute le bloc correspondant et ignore les suivantes. Si aucune condition n'est vraie, il exécute le bloc else.
if font partie du bloc de ce if. La première ligne non indentée marque la fin du bloc. Pas de fin si, pas d'accolades : seulement l'indentation.🔄 7. La Boucle for (Répéter un nombre connu de fois)
La boucle for permet de répéter un bloc d'instructions un nombre déterminé de fois. Elle utilise la fonction range() :
for i in range(5): print(i)
1
2
3
4
La variable i prend successivement les valeurs de 0 à 4 (5 valeurs au total). Attention : range(5) va de 0 à 4, pas de 0 à 5.
Les 3 formes de range()
| Syntaxe | Signification | Valeurs produites |
|---|---|---|
range(n) | De 0 à n−1 (n valeurs) | range(5) → 0, 1, 2, 3, 4 |
range(a, b) | De a à b−1 | range(2, 7) → 2, 3, 4, 5, 6 |
range(a, b, pas) | De a à b−1 avec un pas donné | range(0, 10, 2) → 0, 2, 4, 6, 8 |
Exemple : table de multiplication
n = int(input("Quelle table veux-tu ? ")) for i in range(1, 11): resultat = n * i print(f" × = ")
7 × 2 = 14
7 × 3 = 21
...
7 × 10 = 70
🔁 8. La Boucle while (Répéter tant qu'une condition est vraie)
La boucle while répète un bloc tant qu'une condition reste vraie. Elle s'utilise quand on ne sait pas à l'avance combien de répétitions il faudra.
while condition: # instructions répétées tant que condition est True
Exemple : jeu de devinette
import random mystere = random.randint(1, 50) essais = 0 reponse = 0 while reponse != mystere: reponse = int(input("Devine le nombre (1-50) : ")) essais = essais + 1 if reponse > mystere: print("Trop grand !") elif reponse < mystere: print("Trop petit !") print(f"Bravo ! Trouvé en essais.")
while ne devient jamais fausse, le programme tourne en boucle pour toujours. Vérifiez toujours que quelque chose dans la boucle modifie la condition pour qu'elle finisse par devenir fausse. Si vous êtes bloqué, appuyez sur Ctrl+C pour arrêter le programme.Quand utiliser for vs while ?
| Situation | Boucle à utiliser | Exemple |
|---|---|---|
| On connaît le nombre de répétitions | for | Afficher la table de 7, tracer un polygone à 6 côtés |
| On ne sait pas combien de fois il faudra répéter | while | Demander un mot de passe jusqu'à ce qu'il soit correct |
🧩 9. Les Fonctions
Une fonction est un bloc de code réutilisable auquel on donne un nom. On la définit avec le mot-clé def, et on l'appelle ensuite par son nom.
# Définition de la fonction def aire_rectangle(longueur, largeur): return longueur * largeur # Appel de la fonction resultat = aire_rectangle(5, 3) print(f"L'aire est cm²")
| Terme | Explication |
|---|---|
def | Mot-clé qui signifie « je définis une fonction » |
| Paramètres | Les valeurs que la fonction reçoit entre parenthèses (longueur, largeur) |
return | Mot-clé qui renvoie le résultat de la fonction. Sans return, la fonction ne renvoie rien. |
| Appel | Quand on écrit aire_rectangle(5, 3), on exécute la fonction avec 5 et 3 comme arguments |
print() affiche une valeur à l'écran mais ne la retourne pas. return renvoie une valeur au programme (on peut la stocker dans une variable). Au brevet, on vous demande souvent la différence : un print dans une fonction affiche mais ne permet pas d'utiliser le résultat ensuite ; un return ne s'affiche pas mais permet de réutiliser la valeur.🔄 10. Tableau de Correspondance Scratch → Python
Si vous connaissez déjà Scratch, voici comment chaque concept se traduit en Python :
| Concept | Scratch | Python |
|---|---|---|
| Afficher du texte | dire "Bonjour" | print("Bonjour") |
| Créer une variable | mettre x à 5 | x = 5 |
| Modifier une variable | ajouter 1 à x | x = x + 1 |
| Saisie utilisateur | demander "…" et attendre | input("…") |
| Condition simple | si | if condition: |
| Condition avec sinon | si … alors … sinon … | if … : … else: |
| Boucle fixe | répéter 10 fois | for i in range(10): |
| Boucle conditionnelle | répéter jusqu'à (x = 0) | while x != 0: ⚠️ logique inversée |
| Nombre aléatoire | nombre aléatoire entre 1 et 6 | random.randint(1, 6) |
| Reste de division | reste de x / 2 | x % 2 |
| ET logique | __ et __ | and |
| OU logique | __ ou __ | or |
| Fonction | Blocs personnalisés | def ma_fonction(): |
répéter jusqu'à ce que (condition) s'arrête quand la condition devient vraie. La boucle Python while condition: continue tant que la condition est vraie. Il faut donc inverser la condition quand on traduit. Exemple : Scratch répéter jusqu'à (x = 0) → Python while x != 0:📝 11. Exercices Type Brevet Corrigés
Énoncé : Écrire un programme Python qui demande un nombre à l'utilisateur, le multiplie par 2, ajoute 7, puis affiche le résultat.
nombre = int(input("Choisis un nombre : ")) resultat = nombre * 2 + 7 print(f"Le résultat est ")
Tests : Pour nombre = 4 → 4 × 2 + 7 = 15. Pour nombre = −3 → (−3) × 2 + 7 = −6 + 7 = 1. Expression générale : 2x + 7.
Énoncé : Écrire un programme qui demande un nombre et affiche s'il est pair ou impair.
n = int(input("Entre un nombre : ")) if n % 2 == 0: print(f" est pair") else: print(f" est impair")
Explication : n % 2 donne le reste de la division de n par 2. Si le reste vaut 0, le nombre est divisible par 2 donc pair. Sinon, il est impair.
Énoncé : Écrire un programme qui calcule la somme 1 + 2 + 3 + … + N, où N est saisi par l'utilisateur.
n = int(input("Entre N : ")) somme = 0 for i in range(1, n + 1): somme = somme + i print(f"La somme de 1 à est ")
Trace pour N = 5 : i = 1 → somme = 1 ; i = 2 → somme = 3 ; i = 3 → somme = 6 ; i = 4 → somme = 10 ; i = 5 → somme = 15.
Vérification : La formule mathématique est N × (N + 1) / 2 = 5 × 6 / 2 = 15 ✅
Énoncé : Écrire une fonction est_premier(n) qui retourne True si n est premier, False sinon.
def est_premier(n): if n < 2: return False for i in range(2, n): if n % i == 0: return False return True # Test print(est_premier(7)) # True print(est_premier(12)) # False
Explication : On teste si n est divisible par un nombre entre 2 et n−1. Si on trouve un diviseur (n % i == 0), n n'est pas premier. Si aucun diviseur n'est trouvé après la boucle, n est premier.
Énoncé : Sans l'exécuter, déterminer ce qu'affiche le programme suivant.
x = 1 for i in range(4): x = x * 2 print(x)
Correction :
Initialisation : x = 1. Tour 1 (i=0) : x = 1 × 2 = 2. Tour 2 (i=1) : x = 2 × 2 = 4. Tour 3 (i=2) : x = 4 × 2 = 8. Tour 4 (i=3) : x = 8 × 2 = 16. Le programme affiche 16.
Ce programme calcule 24 = 16 (il multiplie par 2 quatre fois de suite).
⚠️ 12. Les Erreurs Fréquentes en Python
| Erreur | Message Python | Cause | Solution |
|---|---|---|---|
Oublier : | SyntaxError | Pas de deux-points après if, for, while, def | Ajouter : à la fin de la ligne |
| Mauvaise indentation | IndentationError | Les lignes du bloc ne sont pas toutes décalées pareil | Utiliser exactement 4 espaces pour chaque niveau |
Confondre = et == | Bug silencieux | = affecte, == compare | Utiliser == dans les if et while |
input() sans conversion | TypeError | Calcul avec un texte au lieu d'un nombre | Utiliser int(input(…)) ou float(input(…)) |
range(n) commence à 0 | Bug logique | range(5) donne 0,1,2,3,4 et non 1,2,3,4,5 | Utiliser range(1, n+1) pour aller de 1 à n |
| Boucle infinie | Programme bloqué | La condition du while ne devient jamais fausse | Vérifier qu'une variable est modifiée dans la boucle. Ctrl+C pour arrêter. |
| Nom de variable interdit | SyntaxError | Utiliser un mot réservé comme for, if, print comme nom de variable | Choisir un autre nom : resultat au lieu de return |
| Parenthèses manquantes | SyntaxError | print "salut" au lieu de print("salut") | Toujours mettre des parenthèses après print, input, range |
❓ Questions Fréquentes
Python est-il au brevet des collèges ?
Faut-il installer Python pour le collège ?
Quelle est la différence entre Python et Scratch ?
Pourquoi range(5) donne 0, 1, 2, 3, 4 et pas 1, 2, 3, 4, 5 ?
range(5) produit 5 valeurs : de 0 à 4. Si vous voulez aller de 1 à 5, utilisez range(1, 6) — le deuxième paramètre est toujours exclu. C'est déroutant au début, mais c'est la même logique dans tous les langages de programmation.Que signifie l'erreur « IndentationError » ?
IndentationError. La solution : utilisez toujours 4 espaces pour chaque niveau d'indentation, et ne mélangez jamais espaces et tabulations.Quelle est la différence entre print() et return ?
print() affiche un texte à l'écran — c'est pour le développeur ou l'utilisateur. return renvoie une valeur au programme — c'est pour que d'autres parties du code puissent utiliser le résultat. Exemple : si une fonction utilise print(resultat), le résultat s'affiche mais on ne peut pas le stocker dans une variable. Si elle utilise return resultat, on peut écrire x = ma_fonction() et x contiendra le résultat.Comment passer de Scratch à Python facilement ?
📚 Autres cours de technologie
🐱 Programmation Scratch
📊 Algorithmique et algorigrammes
⚡ Chaîne d'énergie et d'information
🌐 Réseaux et Internet
📋 Fiche révision techno brevet
📐 Tous les cours de maths
🐍 Fiches Python (niveau avancé)
