← Cours de Première NSI
Première NSI · Cours et entraînement

Les bases de Python

Comprendre, prédire, programmer et expliquer.

Un complément au Mini RPG

Le projet donne du sens aux notions. Ici, tu les réutilises dans des situations variées : achats, températures, réservations et calculs.

Avance par étapes : lis un exemple, prédis sa sortie, puis résous les exercices avant d’ouvrir la correction.

Ton parcours

10 leçons · 20 exercices progressifs · 20 questions corrigées.

Utilise ton éditeur Python pour exécuter les exemples : cette page présente le cours et un QCM, sans moteur Python intégré. Elle reste utilisable hors connexion une fois téléchargée.

01 · Comprendre et pratiquer

Variables et affectation

Un programme exécute les instructions dans l’ordre, de haut en bas.

Une variable est un nom associé à une valeur. Choisis un nom explicite, sans espace, qui ne commence pas par un chiffre.

Le signe = affecte la valeur calculée à droite au nom écrit à gauche. Il ne signifie pas « est égal à » dans une comparaison.

Une nouvelle affectation remplace la valeur précédente. # introduit un commentaire ignoré à l’exécution.

Python 3
places = 24
places = places - 3
print(places)
# Trois places ont été réservées.
À l’écran
21
Attention

Python distingue places et Places. Lire un nom avant son affectation provoque une erreur.

Exercice 1Prédire

Sans exécuter, donne les valeurs finales de a et b après a = 4, b = a + 2, a = 10.

Vérification : 10 6

Un indice

b conserve la valeur calculée au moment de son affectation.

Voir une correction après avoir essayé
Python 3
a = 4
b = a + 2
a = 10
print(a, b)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 2Programmer

Un stock contient 18 cahiers. On en vend 5 puis on en reçoit 12. Affiche le stock final.

Vérification : 25

Un indice

Modifie la même variable à chaque étape.

Voir une correction après avoir essayé
Python 3
stock = 18
stock = stock - 5
stock = stock + 12
print(stock)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

02 · Comprendre et pratiquer

Types et calculs

int représente les entiers ; float représente les nombres à virgule flottante, écrits avec un point.

str représente une chaîne de caractères entre guillemets. bool représente True ou False.

type(valeur) permet d’observer le type d’une valeur.

+, -, * et ** calculent une somme, une différence, un produit et une puissance.

/ effectue une division ; // donne le quotient entier arrondi vers moins l’infini ; % donne le reste. Pour les entiers positifs, on retrouve la division euclidienne.

Les parenthèses imposent l’ordre des calculs. Sinon, les puissances précèdent les produits et divisions, qui précèdent les sommes.

Python 3
print(17 // 5, 17 % 5)
print(17 / 5)
print(2 + 3 * 4)
print((2 + 3) * 4)
À l’écran
3 2
3.4
14
20
Attention

"12" est du texte et 12 est un entier. "12" + "3" donne "123". Les float peuvent représenter certaines valeurs de façon approchée.

Exercice 3Appliquer

Convertis 135 minutes en heures et minutes. Affiche les deux nombres.

Vérification : 2 15

Un indice

Utilise // et % avec 60.

Voir une correction après avoir essayé
Python 3
minutes = 135
print(minutes // 60, minutes % 60)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 4Programmer

Un rectangle mesure 8 sur 3. Calcule son aire et son périmètre dans deux variables, puis affiche-les.

Vérification : 24 22

Un indice

Le périmètre vaut deux fois la somme des côtés.

Voir une correction après avoir essayé
Python 3
longueur = 8
largeur = 3
aire = longueur * largeur
perimetre = 2 * (longueur + largeur)
print(aire, perimetre)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

03 · Comprendre et pratiquer

Lire, convertir et afficher

input("Question") affiche une question et renvoie le texte saisi.

int(texte) convertit un texte représentant un entier en int. float(texte) permet de lire un nombre décimal avec un point.

print(...) affiche ses arguments et termine normalement par un retour à la ligne. Les virgules séparent les arguments et ajoutent des espaces à l’affichage.

str(valeur) convertit une valeur en texte. Pour débuter, préfère print("Âge :", age) à une concaténation.

Dans les exercices suivants, les saisies sont supposées convertibles dans le type demandé, sauf mention contraire.

Python 3
prix = "7"
quantite = int(prix)
print(prix + prix)
print(quantite + quantite)
À l’écran
77
14
Attention

int("3.5") et int("bonjour") provoquent ValueError. La validation d’un intervalle ne traite pas cette erreur de conversion.

Exercice 5Corriger

On veut ajouter 1 à un âge saisi. Corrige age = input("Âge ? ") puis print(age + 1).

Vérification : Pour 16 : 17

Un indice

Convertis le texte avant le calcul.

Voir une correction après avoir essayé
Python 3
age = int(input("Âge ? "))
print(age + 1)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 6Programmer

Demande une température en degrés Celsius et affiche sa conversion en Fahrenheit : F = 1.8 × C + 32.

Vérification : Pour 0 : 32.0 ; pour 100 : 212.0

Un indice

Une température peut être décimale.

Voir une correction après avoir essayé
Python 3
celsius = float(input("Celsius ? "))
print(1.8 * celsius + 32)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

04 · Comprendre et pratiquer

Comparer et combiner des conditions

== teste l’égalité ; != teste la différence. <, <=, > et >= comparent deux valeurs.

Une comparaison produit un booléen : True ou False.

and est vrai si les deux conditions sont vraies. or est vrai si au moins une condition est vraie.

not inverse une condition. Les parenthèses rendent les combinaisons plus lisibles.

0 <= note <= 20 vérifie les deux bornes incluses. On peut aussi écrire note >= 0 and note <= 20.

Python 3
age = 17
autorisation = True
print(age >= 18)
print(age >= 16 and autorisation)
print(not autorisation)
À l’écran
False
True
False
Attention

Pour accepter "oui" ou "o", écris reponse == "oui" or reponse == "o". Chaque comparaison doit être complète.

Exercice 7Compléter

Avec n = 24, affiche si n est pair puis si n est compris entre 10 et 30 inclus.

Vérification : True True

Un indice

Un entier pair a un reste nul dans la division par 2.

Voir une correction après avoir essayé
Python 3
n = 24
print(n % 2 == 0)
print(10 <= n <= 30)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 8Tester

Écris une condition qui détecte une note hors de [0 ; 20]. Teste -1, 0, 20, 21 en changeant note.

Vérification : -1 : True ; 0 : False ; 20 : False ; 21 : True

Un indice

Une seule borne dépassée suffit : utilise or.

Voir une correction après avoir essayé
Python 3
note = 21
print(note < 0 or note > 20)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

05 · Comprendre et pratiquer

Choisir avec if, elif et else

if condition: exécute le bloc indenté seulement si la condition est vraie.

elif condition: teste une autre possibilité si les tests précédents ont échoué.

else: traite tous les cas restants. Il ne porte pas de condition.

Dans une chaîne if / elif / else, au plus un bloc est exécuté. Deux if indépendants peuvent tous deux s’exécuter.

Le deux-points ouvre le bloc. Indente de quatre espaces et aligne les instructions du même bloc.

Python 3
age = 14
if age < 12:
    prix = 5
elif age < 18:
    prix = 8
else:
    prix = 12
print(prix)
À l’écran
8
Attention

L’ordre des tests compte : tester note >= 10 avant note >= 16 dans une chaîne peut masquer le cas « très bien ».

Exercice 9Programmer

Affiche « négatif », « nul » ou « positif » selon la valeur de nombre. Teste -2, 0 et 5.

Vérification : Pour 0 : nul

Un indice

Prévois trois cas exclusifs.

Voir une correction après avoir essayé
Python 3
nombre = 0
if nombre < 0:
    print("négatif")
elif nombre == 0:
    print("nul")
else:
    print("positif")

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 10Transférer

La livraison coûte 4 € si le panier est inférieur à 50 €, sinon elle est gratuite. Calcule le total. Teste 49, 50 et 80.

Vérification : 49 → 53 ; 50 → 50 ; 80 → 80

Un indice

Le seuil 50 appartient au cas gratuit.

Voir une correction après avoir essayé
Python 3
panier = 50
if panier < 50:
    total = panier + 4
else:
    total = panier
print(total)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

06 · Comprendre et pratiquer

Répéter avec for et range

for parcourt les éléments d’une séquence, par exemple les entiers produits par range ou les caractères d’un texte.

range(n) produit les entiers de 0 à n - 1. range(4) produit donc quatre valeurs.

range(debut, fin) inclut debut et exclut fin.

range(debut, fin, pas) fixe l’écart entre deux valeurs. Le pas ne peut pas être nul.

Le bloc indenté est exécuté une fois par valeur. Après le bloc, une instruction désindentée s’exécute une seule fois.

Python 3
for numero in range(1, 4):
    print("Tour", numero)
print("Terminé")
for lettre in "NSI":
    print(lettre)
À l’écran
Tour 1
Tour 2
Tour 3
Terminé
N
S
I
Attention

range(1, 5) ne contient pas 5. range(5, 1) est vide : utilise un pas négatif pour descendre.

Exercice 11Programmer

Affiche le compte à rebours 5, 4, 3, 2, 1 puis « Départ ! ».

Vérification : 5 4 3 2 1 Départ !

Un indice

Pour descendre, le pas vaut -1 et la borne exclue vaut 0.

Voir une correction après avoir essayé
Python 3
for n in range(5, 0, -1):
    print(n)
print("Départ !")

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 12Transférer

Affiche les dix premiers multiples positifs de 7, un par ligne.

Vérification : 7, 14, 21, 28, 35, 42, 49, 56, 63, 70 (une valeur par ligne)

Un indice

Parcours les multiplicateurs de 1 à 10 inclus.

Voir une correction après avoir essayé
Python 3
for i in range(1, 11):
    print(7 * i)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

07 · Comprendre et pratiquer

Compteurs, accumulateurs et traces

Un compteur mesure un nombre d’événements. Initialise-le à zéro avant la boucle et augmente-le quand la condition est satisfaite.

Un accumulateur construit une somme ou un produit. Une somme commence à 0 ; un produit commence à 1.

total += valeur est une écriture abrégée de total = total + valeur.

Pour comprendre une boucle, note la valeur des variables après chaque tour dans un tableau de trace.

Le placement de print à l’intérieur ou à l’extérieur de la boucle distingue les résultats intermédiaires du résultat final.

Python 3
somme = 0
for n in range(1, 5):
    somme = somme + n
    print(n, somme)
À l’écran
1 1
2 3
3 6
4 10
Attention

Initialiser somme = 0 dans la boucle efface le résultat des tours précédents.

Exercice 13Programmer

Calcule la somme des entiers de 1 à 100 inclus avec une boucle, puis affiche une seule fois le résultat.

Vérification : 5050

Un indice

Initialise avant la boucle ; affiche après.

Voir une correction après avoir essayé
Python 3
somme = 0
for n in range(1, 101):
    somme += n
print(somme)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 14Combiner

Compte les multiples de 3 entre 1 et 20 inclus avec for et if.

Vérification : 6

Un indice

À chaque multiple trouvé, augmente le compteur de 1.

Voir une correction après avoir essayé
Python 3
compteur = 0
for n in range(1, 21):
    if n % 3 == 0:
        compteur += 1
print(compteur)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

08 · Comprendre et pratiquer

Répéter tant que : while

while condition: répète son bloc tant que la condition est vraie.

La condition est testée avant chaque tour : si elle est fausse au départ, aucun tour n’est exécuté.

Initialise les variables avant la boucle, fais évoluer l’état dans le bloc et identifie ce qui rendra la condition fausse.

Utilise souvent for lorsque le parcours est connu, et while lorsque l’arrêt dépend d’un seuil ou d’une saisie.

Une boucle qui ne peut pas atteindre sa condition d’arrêt peut tourner indéfiniment.

Python 3
energie = 3
while energie > 0:
    print(energie)
    energie -= 1
print("Repos")
À l’écran
3
2
1
Repos
Attention

Oublier energie -= 1 maintient la condition vraie. Dans un éditeur Python, interromps alors le programme avec le bouton Stop.

Exercice 15Corriger

Une boucle commence avec n = 3 et répète print(n) tant que n > 0. Ajoute la ligne qui la termine.

Vérification : 3 2 1

Un indice

Fais diminuer n dans le bloc.

Voir une correction après avoir essayé
Python 3
n = 3
while n > 0:
    print(n)
    n -= 1

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 16Transférer

Tu as 20 €. Tu ajoutes 7 € par semaine. Combien de semaines faut-il pour atteindre au moins 50 € ?

Vérification : 5 55

Un indice

Compte les semaines et augmente la somme à chaque tour.

Voir une correction après avoir essayé
Python 3
argent = 20
semaines = 0
while argent < 50:
    argent += 7
    semaines += 1
print(semaines, argent)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

09 · Comprendre et pratiquer

Saisies répétées et choix de boucle

Pour redemander une saisie, lis une première valeur avant while, puis renouvelle-la dans le bloc.

Une sentinelle est une valeur spéciale qui termine la saisie. Elle ne doit pas être ajoutée au résultat.

break interrompt immédiatement la boucle la plus proche. C’est un outil complémentaire ; commence par savoir écrire une condition d’arrêt explicite.

Teste aussi les cas où la première saisie est déjà valide ou déjà la sentinelle.

Python 3
nombre = 1
total = 0
while nombre <= 3:
    total += nombre
    nombre += 1
print(total)
À l’écran
6
Attention

Une saisie répétée doit pouvoir changer la condition. Ne suppose pas que l’utilisateur fera toujours un choix valide.

Exercice 17Valider

Demande un entier entre 1 et 5 inclus et recommence tant qu’il est hors intervalle. Les saisies sont des entiers.

Vérification : Pour 0, 6, 3 : Choix accepté : 3

Un indice

Redemande la valeur dans le while.

Voir une correction après avoir essayé
Python 3
choix = int(input("Entier de 1 à 5 ? "))
while choix < 1 or choix > 5:
    choix = int(input("Recommence : "))
print("Choix accepté :", choix)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 18Combiner

Additionne les entiers saisis jusqu’à la saisie de 0. Affiche seulement le total final, sans compter 0.

Vérification : 4, -1, 0 → 3 ; 0 → 0

Un indice

Lis avant la boucle, puis à la fin de chaque tour.

Voir une correction après avoir essayé
Python 3
total = 0
n = int(input("Entier, 0 pour finir : "))
while n != 0:
    total += n
    n = int(input("Entier, 0 pour finir : "))
print(total)

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

10 · Comprendre et pratiquer

Fonctions : paramètre, appel et return

def nom(parametre): définit une fonction. Son corps ne s’exécute que lorsqu’on l’appelle.

Un paramètre est un nom utilisé dans la définition. Un argument est la valeur fournie lors d’un appel.

return renvoie une valeur à l’appelant et termine la fonction. Sans return exécuté, la fonction renvoie None.

print affiche une valeur mais ne la renvoie pas à l’appelant. Une fonction de calcul renvoie généralement son résultat.

Les variables créées dans une fonction sont normalement locales à cet appel. Utilise des paramètres et return pour échanger des valeurs.

Python 3
def carre(x):
    return x * x

resultat = carre(5)
print(resultat)
print(carre(3) + 1)
À l’écran
25
10
Attention

Ne remplace pas return par print si tu veux réutiliser le résultat dans un calcul.

Exercice 19Programmer

Écris une fonction est_pair(n) qui renvoie un booléen. Teste 8 et 9.

Vérification : True False

Un indice

Tu peux renvoyer directement une comparaison.

Voir une correction après avoir essayé
Python 3
def est_pair(n):
    return n % 2 == 0

print(est_pair(8))
print(est_pair(9))

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

Exercice 20Synthèse

Écris somme_jusqua(n), pour n entier positif ou nul, qui renvoie la somme de 1 à n avec une boucle. Teste 0, 1 et 5.

Vérification : 0 1 15

Un indice

L’accumulateur vaut 0 ; range(1, n + 1) inclut n.

Voir une correction après avoir essayé
Python 3
def somme_jusqua(n):
    total = 0
    for i in range(1, n + 1):
        total += i
    return total

print(somme_jusqua(0), somme_jusqua(1), somme_jusqua(5))

Explique chaque ligne, puis modifie une donnée pour vérifier que tu sais adapter le programme.

11 · Devenir autonome

Tester, expliquer, transférer

Une méthode en quatre étapes
  1. Prédire le résultat sur papier.
  2. Écrire et exécuter dans ton éditeur Python.
  3. Comparer au résultat attendu et tester les bornes.
  4. Modifier une contrainte sans regarder la correction.

Reconnaître les erreurs

SyntaxError / IndentationError : vérifie les deux-points, les parenthèses et l’indentation.

NameError : vérifie le nom et son affectation avant utilisation.

TypeError / ValueError : vérifie le type des valeurs et la conversion des saisies.

Erreur logique : le programme s’exécute mais donne un mauvais résultat ; construis une trace des variables.

Quel outil choisir ?

BesoinOutil
Choisir selon une conditionif / elif / else
Parcourir un texte ou un intervalle connufor
Recommencer jusqu’à une saisie validewhile
Réutiliser un calcul avec d’autres valeursdef et return

Avant de dire « je maîtrise »

Le QCM vérifie tes repères ; il ne remplace pas l’écriture de code.

Mettre ces notions en pratique dans le Mini RPG · Poursuivre avec les listes

12 · Vérifier ses repères

QCM interactif · 20 questions

Une seule bonne réponse par question. Réponds puis corrige : chaque réponse est expliquée. Tu peux recommencer autant que nécessaire.

1. Après x = 4 puis x = x + 3, x vaut…
2. Quel est le type de "12" ?
3. Que vaut 17 % 5 ?
4. Que vaut 7 / 2 ?
5. input renvoie toujours…
6. Quel test compare x à 3 ?
7. Pour x = 5, que vaut x > 2 and x < 4 ?
8. Quel test détecte x hors de [0 ; 10] ?
9. Combien de blocs une chaîne if / elif / else exécute-t-elle ?
10. Quelles valeurs produit range(2, 5) ?
11. Combien de tours fait for i in range(0) ?
12. Quel parcours donne 3, 2, 1 ?
13. Où initialise-t-on une somme cumulée ?
14. Que vaut s après s = 0 puis, pour i de 1 à 3 inclus, s += i ?
15. Si while teste False dès le départ, son bloc est exécuté…
16. Avec n = 1, while n > 0: n += 1…
17. Pour redemander un entier valide, on privilégie…
18. Que fait return ?
19. Dans def double(x), x est…
20. Une fonction sans return exécuté renvoie…