Une introduction pas à pas, du premier mot au premier programme
Chaque fois que YouTube te propose exactement la vidéo que tu avais envie de regarder, c'est un algorithme Python qui a analysé tes habitudes. Chaque fois que TikTok enchaîne les vidéos sans que tu aies à chercher, c'est Python. Quand la NASA calcule la trajectoire d'une fusée vers Mars, quand un médecin utilise l'IA pour détecter un cancer sur une radio, quand Spotify génère ta playlist du moment — Python est là.
Ce n'est pas un hasard si Python est le langage le plus utilisé au monde. Il est lisible, puissant, et il s'apprend vite. Aujourd'hui, tu fais partie de ceux qui commencent à comprendre comment fonctionne vraiment le monde numérique.
Au collège, tu as peut-être utilisé Scratch : un langage visuel où on assemble des blocs colorés comme des pièces de LEGO. Python, c'est la même logique — mais écrite en texte. Bonne nouvelle : les concepts sont identiques, seul l'aspect change.
Imagine que tu donnes des instructions à quelqu'un qui fait exactement ce que tu dis, dans l'ordre, sans jamais interpréter. C'est ça, un programme informatique.
Un programme est une suite d'instructions écrites dans un langage de programmation. L'ordinateur les lit et les exécute une par une, de haut en bas. Python est un de ces langages — et l'un des plus simples à apprendre.
Voici le programme le plus simple qui existe. Python affiche un message à l'écran :
print("Bonjour tout le monde !")
printC'est un ordre donné à Python : « affiche ce qui est entre les parenthèses ».print() est la commande pour afficher quelque chose à l'écran. C'est l'une des premières choses que tout programmeur apprend.Complète le code pour afficher le message "Python c'est super !"
("Python c'est super !")
On peut aussi afficher des nombres directement, sans guillemets. Complète pour afficher le nombre 42 :
print()
Un programme doit souvent se souvenir d'une valeur pour la réutiliser plus tard. C'est le rôle d'une variable.
Une variable, c'est une boîte étiquetée dans la mémoire de l'ordinateur. On lui donne un nom, et on y range une valeur. Le signe = signifie « je range cette valeur dans cette boîte » — on dit que c'est une affectation.
age = 16 # on range 16 dans la boîte "age"
prenom = "Lucas" # on range "Lucas" dans la boîte "prenom"
print(age) # affiche : 16
print(prenom) # affiche : Lucas
age = 16La boîte nommée age contient maintenant la valeur 16.print(age)Python ouvre la boîte age, lit ce qu'elle contient, et l'affiche.print(age), Python affiche le contenu de la boîte (16).print("age"), il afficherait le mot age tel quel.Imagine la mémoire de l'ordinateur comme une grande armoire avec des tiroirs. Chaque tiroir a une étiquette (le nom de la variable) et contient exactement une chose à la fois. Quand tu ranges quelque chose de nouveau, l'ancien contenu disparaît automatiquement — la boîte ne peut pas en stocker deux à la fois.
Lis ces lignes une par une, dans l'ordre, et suis mentalement ce qui se passe dans chaque boîte. À la fin, qu'est-ce que contient a, b et c ?
Réfléchis avant de regarder la réponse. c − a avec les valeurs actuelles des boîtes…
= n'est pas une égalité !En mathématiques, x = 5 est une égalité (x est égal à 5). En Python, x = 5 signifie « range 5 dans la boîte x ». Ce sont deux choses très différentes ! On peut même écrire :
x = 5
x = x + 1 # x vaut maintenant 6 (impossible en maths !)
print(x) # affiche : 6
Crée une variable appelée note qui contient la valeur 15, puis affiche-la.
= 15
print()
La variable points vaut 10. Complète la ligne pour lui ajouter 5, puis affiche le résultat (qui doit valoir 15).
points = 10
points = points +
print(points)
Toutes les valeurs n'ont pas la même nature. Le nombre 5 et le texte "bonjour" ne sont pas la même chose pour Python. On appelle ça le type.
int
Entier
5 · -3 · 100
float
Décimal
3.14 · -0.5 · 2.0
str
Texte
"Bonjour" · "42"
bool
Vrai / Faux
True · False
Un ordinateur ne comprend que des 0 et des 1. Quand il voit la suite de bits 00000101, ça peut signifier le nombre 5, ou bien la lettre ENQ en code ASCII, ou autre chose encore selon le contexte. Sans que tu lui précises le type, il ne sait pas comment interpréter les données.
C'est comme la différence entre le symbole "5" écrit sur un t-shirt (une image, du texte) et la quantité 5 de pommes dans un sac (un nombre qu'on peut additionner). Ils se ressemblent visuellement, mais on ne peut pas faire la même chose avec eux.
3,14 dans Python ne donnera pas ce que tu attends — c'est une erreur fréquente !a = "5"
b = "3"
print(a + b)
# affiche "53" ! (collage de texte)
a = 5
b = 3
print(a + b)
# affiche 8 ✔ (addition)
Sur des str, le + colle les textes (concaténation). Pour additionner des nombres, il faut des int ou des float.
On peut transformer un type en un autre avec des fonctions de conversion :
int("15") # → 15 (texte "15" devient l'entier 15)
float("3.14") # → 3.14 (texte devient décimal)
str(42) # → "42" (entier devient texte)
Maintenant que tu connais les 3 grands types, prouve-le ! Glisse chaque valeur dans la bonne boîte de rangement.
📱 Sur mobile : appuie et fais glisser les étiquettes.
La fonction type() révèle le type d'une valeur. Complète pour connaître le type de 3.14 :
print((3.14))
→ Python affichera : <class 'float'>
L'utilisateur a tapé "7" (c'est du texte). Convertis-le en entier avant de l'additionner à 3 :
saisie = "7"
nombre = (saisie)
print(nombre + 3) # doit afficher 10
Jusqu'ici, toutes les valeurs étaient écrites directement dans le code. Mais un vrai programme doit pouvoir poser des questions à l'utilisateur et utiliser ses réponses.
input()input("message") affiche le message entre guillemets, puis attend que l'utilisateur tape quelque chose au clavier et appuie sur Entrée. La valeur saisie est renvoyée sous forme de texte (str).
prenom = input("Quel est ton prénom ? ")
print("Bonjour", prenom, "!")
prenom contient maintenant "Marie".⚠️ Piège crucial —input()renvoie toujours du texte !
- Même si l'utilisateur tape 7, Python reçoit
"7"(un texte), pas le nombre 7.- Pour obtenir un nombre entier, il faut convertir :
int(input(...)).- Pour un décimal :
float(input(...)).
On veut demander l'âge de l'utilisateur et l'afficher. Complète pour convertir la saisie en entier :
age = (input("Quel est ton âge ? "))
print("Tu as", age, "ans.")
input() donne du texte. Pour le transformer en entier, entoure-le de la même fonction que l'exercice précédent.Python est une calculatrice très puissante. La plupart des symboles sont identiques aux mathématiques, mais il y a quelques différences à connaître.
| Opération | Maths | Python | Exemple | Résultat |
|---|---|---|---|---|
| Addition | a + b | + | 7 + 3 | 10 |
| Soustraction | a − b | - | 7 - 3 | 4 |
| Multiplication | a × b | * | 7 * 3 | 21 |
| Division | a ÷ b | / | 7 / 2 | 3.5 |
| Puissance ⚠ | ab | ** | 2 ** 10 | 1024 |
| Division entière ⚠ | quotient | // | 7 // 2 | 3 |
| Reste (modulo) ⚠ | reste ÷ | % | 7 % 2 | 1 |
⚠️ La puissance — ne jamais écrire^
- En maths on écrit 210. En Python on écrit
2 ** 10.- Le symbole
^existe en Python mais fait une opération binaire — rien à voir avec une puissance !
Calcule 2 à la puissance 8 (c'est-à-dire 28) et affiche le résultat. Complète le symbole Python pour la puissance :
resultat = 2 8
print(resultat) # doit afficher 256
^ du clavier. En Python, la puissance s'écrit avec deux fois le même caractère.Ces 4 lignes de code sont dans le désordre. Réordonne-les à l'aide des flèches ▲▼ (ou glisse-dépose sur desktop) pour que le programme calcule et affiche correctement 46.5.
resultat = prix * quantite
prix = 15.5
print(resultat)
quantite = 3
if / elseJusqu'ici Python exécutait toutes les lignes dans l'ordre. Maintenant on va lui apprendre à choisir : « Si cette condition est vraie, fais ça — sinon, fais autre chose. »
Une condition permet d'exécuter un bloc de code seulement si quelque chose est vrai. C'est l'équivalent du « Si … Alors … Sinon … » qu'on utilise en algorithmique.
if se termine obligatoirement par : (deux-points).if.Pour comprendre l'indentation et le : une bonne fois pour toutes, imagine un chef de gare qui donne des ordres à ses équipes.
Le mot if (ou for, ou def) joue le rôle du chef. Le : en fin de ligne signifie littéralement : « Attention, voici mes ordres : ». Les lignes indentées (décalées de 4 espaces) sont les subordonnés qui obéissent à cet ordre.
:.
Un subordonné mal aligné (trop à gauche ou trop à droite) crée la confusion : Python ne sait plus à quel chef il obéit et lève une IndentationError. C'est comme un employé qui rejoindrait la mauvaise équipe — ça ne peut pas fonctionner.
age = int(input("Quel est ton âge ? "))
if age >= 18:
print("Tu es majeur(e).")
else:
print("Tu es mineur(e).")
if age >= 18:Python vérifie si la valeur dans la boîte age est supérieure ou égale à 18.if → affiche "Tu es majeur(e)."else → affiche "Tu es mineur(e)."⚠️ Piège n°2 —=vs==
=→ affectation (ranger une valeur dans une boîte)==→ comparaison (est-ce que deux valeurs sont égales ?)- Écrire
if x = 5:provoque une erreur immédiate. Il faut écrireif x == 5:.
Complète ce programme qui vérifie si une note est supérieure ou égale à 10. Attention : utilise le bon symbole de comparaison !
note = 14
if note 10:
print("Reçu(e) !")
else:
print("Non reçu(e).")
forEt si on voulait afficher les nombres de 1 à 100 ? Écrire 100 lignes print() serait absurde. La boucle permet de répéter automatiquement un bloc de code.
La boucle for répète un bloc un nombre précis de fois. À chaque tour, la variable de boucle (souvent appelée i) prend une nouvelle valeur générée par range().
for i in range(5):
print(i)
# Affiche : 0, puis 1, puis 2, puis 3, puis 4
range(5)Génère les valeurs 0, 1, 2, 3, 4. Attention : il y a bien 5 valeurs, mais elles vont de 0 à 4 (pas jusqu'à 5).i = 0 → print(0) → affiche 0i = 1 → print(1) → affiche 1i = 4 → print(4)range(n) génère n valeurs : de 0 à n−1. range(5) donne 0, 1, 2, 3, 4 — pas 5 !range(5) # → 0, 1, 2, 3, 4
range(1, 6) # → 1, 2, 3, 4, 5 (la borne 6 est EXCLUE)
range(1, 11) # → 1, 2, 3, ..., 10
Complète la boucle pour afficher les entiers de 1 à 10 (inclus). Quelle valeur donner à range(1, ?) pour que la boucle s'arrête à 10 ?
for i in range(1, ):
print(i)
range(a, b) est toujours exclue. Si tu veux aller jusqu'à 10, quel nombre faut-il écrire ?whileLa boucle for répète un nombre connu à l'avance de tours. Mais parfois, on veut répéter tant qu'une condition est vraie, sans savoir combien de tours il faudra. C'est le rôle de while.
La boucle while (« tant que ») répète un bloc de code tant que la condition est vraie. Dès que la condition devient fausse, la boucle s'arrête et Python passe à la suite.
Nombre de tours connu à l'avance.
« Fais ça 10 fois. »
On ne sait pas combien de tours il faudra.
« Continue tant que tu n'as pas trouvé. »
n = 5
while n > 0:
print(n)
n = n - 1
print("Décollage !")
n = 5 → condition 5 > 0 vraie → affiche 5, puis n = 4n = 4 → condition vraie → affiche 4, puis n = 3n = 0 → condition 0 > 0 fausse → on sort de la boucle"Décollage !"⚠️ Piège — La boucle infinie
- Si la condition ne devient jamais fausse, la boucle tourne indéfiniment et le programme se bloque.
- Toujours vérifier que le bloc modifie une variable qui rendra la condition fausse à un moment.
- Exemple dangereux :
while True:sansbreak→ boucle infinie assurée.
# ❌ NE PAS EXÉCUTER — boucle infinie !
x = 10
while x > 0:
print(x)
# On a oublié x = x - 1
# → x reste 10, la condition est toujours vraie…
Complète le programme pour qu'il affiche les puissances de 2 inférieures à 100 (1, 2, 4, 8, 16, 32, 64). Quel mot-clé permet de répéter un bloc tant qu'une condition est vraie ?
p = 1
p < 100:
print(p)
p = p * 2
On a déjà utilisé des fonctions que Python connaît (print, input, int…). On peut aussi créer les siennes : c'est comme fabriquer sa propre calculatrice spécialisée.
Une fonction est un bloc de code qu'on donne un nom et qu'on peut réutiliser autant de fois qu'on veut. On la crée avec le mot-clé def (abréviation de define, « définir » en anglais). Elle peut recevoir des valeurs en entrée (les paramètres) et renvoyer un résultat avec return.
# 1. Définir la fonction (fabriquer la machine)
def double(x):
return x * 2
# 2. Appeler la fonction (utiliser la machine)
print(double(5)) # affiche 10
print(double(7)) # affiche 14
def double(x):On crée la machine nommée double. Le paramètre x est la valeur qu'on lui donne en entrée.return x * 2return fait sortir le résultat de la fonction. Ici, elle renvoie x multiplié par 2.double(5)On appelle la machine avec x = 5. Elle calcule 5 × 2 = 10 et le renvoie.def crée la fonction (une seule fois). Appeler la fonction (écrire son nom avec une valeur) l'exécute — autant de fois qu'on veut.return vs print()return renvoie une valeur réutilisable. print() affiche un message à l'écran mais ne produit rien de réutilisable. Si une fonction n'a pas de return, son résultat est perdu.
La différence entre print() et return est le piège classique de tous les débutants en Python. Une image va te faire retenir ça pour toujours.
Imagine un boulanger qui te montre son pain à travers la vitrine. Tu le vois, tu sais qu'il est là, tu peux le décrire — mais tu ne peux pas le toucher, pas le manger, pas le mettre dans ton sac.
C'est exactement ce que fait print() : il affiche une valeur à l'écran pour que toi (humain) tu la voies. Mais le programme, lui, ne peut pas réutiliser cette valeur. Elle s'affiche… et disparaît.
Cette fois, le boulanger te tend le pain dans un sachet. Tu peux le ramener chez toi, le mettre dans ton frigo (une variable), le donner à quelqu'un d'autre (le passer à une autre fonction), ou le trancher pour une recette (l'utiliser dans un calcul).
C'est ce que fait return : il sort la valeur de la fonction et la rend disponible pour la suite du programme.
print()returnreturn pour renvoyer la valeur, et des print() intermédiaires pour afficher des informations de débogage.Complète la fonction carre qui reçoit un nombre n et renvoie son carré (n²) :
def carre(n):
n ** 2
print(carre(4)) # doit afficher 16
print(carre(7)) # doit afficher 49
Voici un script complet qui combine tout ce qu'on a appris. Il manque 3 mots-clés. Retrouve-les !
# Fonction qui teste si n est pair
est_pair(n):
return n % 2 == 0
# Demander un entier à l'utilisateur
nombre = (input("Entrez un entier : "))
# Afficher le résultat
if est_pair(nombre):
print(nombre, "est PAIR.")
:
print(nombre, "est IMPAIR.")
Tu as tout lu, tout pratiqué. Maintenant prouve-le ! Ces questions ne demandent pas de coder — juste de réfléchir. Clique sur la réponse que tu penses correcte.
1Un élève veut vérifier si la variable score vaut 100. Il écrit : if score = 100:. Que se passe-t-il ?
if, Python attend une comparaison, pas une affectation. Le signe = est réservé à l'affectation (ranger une valeur dans une boîte). Pour comparer, il faut absolument == (double égal). Dès que Python voit if score = 100:, il refuse de continuer et lève une SyntaxError: invalid syntax avant même d'exécuter la première ligne. Le programme ne démarre tout simplement pas.
2Un élève écrit un programme avec un if. La ligne print("Gagné !") est censée s'afficher uniquement si la condition est vraie, mais elle s'affiche toujours, même quand la condition est fausse. Quelle est la cause la plus probable ?
if. Python l'exécute donc toujours, que la condition soit vraie ou fausse. C'est comme si le subordonné avait quitté l'équipe du chef de gare et travaillait maintenant pour tout le monde. Si le : était manquant (réponse C), Python lèverait une SyntaxError immédiate — le programme ne s'exécuterait même pas.
3Un élève veut afficher les entiers de 1 à 6 inclus. Il écrit for i in range(1, 6):. Quels nombres va-t-il obtenir ?
range(). La règle est invariable : dans range(debut, fin), la borne fin est toujours exclue. range(1, 6) génère donc : 1, 2, 3, 4, 5 — le 6 n'est jamais atteint. Pour inclure 6, il faut écrire range(1, 7). Un truc pour s'en souvenir : pense à la borne de droite comme une porte fermée. La boucle avance jusqu'à la porte, mais ne la franchit jamais.
Voici tous les mots-clés et fonctions que tu as appris dans cette leçon. Reviens ici pour te souvenir de leur rôle !
print("Bonjour")
print(42)
str).x = input("Valeur : ")
int("15") → 15
float("3.14") → 3.14
age = 16
nom = "Lucas"
True ou False.if age == 18:
if x == y:
if note >= 10:
print("Reçu")
else:
print("Échec")
for i in range(5):
print(i)
: et d'un bloc indenté.def double(x):
return x * 2
def carre(n):
return n ** 2
2 ** 10 → 1024
7 // 2 → 3
7 % 2 → 1
5 → int
3.14 → float
"Salut" → str
True → bool
type(3.14)
→ <class 'float'>
= stocke, == compare — ne jamais les confondre dans un if.if, for, def, else se termine par :.range(1, 10) va jusqu'à 9 — la borne droite est toujours exclue.Tu peux maintenant tester du code Python librement. Écris tes propres instructions et clique sur Exécuter pour voir ce que Python ferait. C'est un simulateur : les fonctions input() ne sont pas supportées ici, mais tout le reste fonctionne !
print() · variables (x = 5) · opérations (+ - * / ** // %) ·
chaînes de caractères ("texte") · int() float() str() type() ·
conditions if/else · boucles for i in range() · fonctions def/return