Aller au contenu principal
4e⏱ 45 minutes

Découvrir Python : variables et conditions — Entraînement type évaluation

Pour un entraînement qui sert vraiment à quelque chose : pas de cours sous les yeux, une feuille et un stylo (pas d'ordinateur). Note-toi ensuite avec le corrigé.

Barème indicatif : 20 points.

Exercice 1 (4 points) — Vocabulaire

  1. Qu'est-ce qu'un langage de programmation textuel, par opposition à Scratch ? (1 point)
  2. À quoi sert l'indentation en Python ? (1 point)
  3. Quelle est la différence entre les fonctions print() et input() ? (1 point)
  4. Quel est le rôle du mot-clé else dans un programme Python ? (1 point)
Voir le corrigé
  1. Un langage textuel s'écrit avec du texte et une syntaxe précise, alors que Scratch s'utilise en assemblant des blocs graphiques préexistants.
  2. L'indentation indique quelles instructions appartiennent à un même bloc de code (par exemple, ce qui doit s'exécuter à l'intérieur d'un if).
  3. print() affiche une information à l'écran ; input() met le programme en pause pour demander une saisie à l'utilisateur et la renvoie sous forme de texte.
  4. else introduit la branche exécutée uniquement quand la condition du if est fausse.

Exercice 2 (4 points) — Types de variables

Pour chacune des lignes suivantes, indique le type de la variable créée (int, float ou str) et justifie brièvement :

  1. nom_eleve = "Sofia" (1 point)
  2. nombre_de_points = 17 (1 point)
  3. prix = 4.90 (1 point)
  4. code_postal = "62138" (1 point)
Voir le corrigé
  1. str : le texte est entre guillemets.
  2. int : c'est un nombre entier, sans virgule.
  3. float : c'est un nombre à virgule.
  4. str : bien que composé de chiffres, "62138" est écrit entre guillemets, c'est donc du texte (un code postal n'est d'ailleurs pas destiné à être utilisé dans un calcul).

Exercice 3 (4 points) — Lire un programme

age = int(input("Quel âge as-tu ? "))
if age >= 12:
    print("Tu peux voir ce film")
else:
    print("Ce film est interdit pour toi")
  1. À quoi sert int(...) autour de input(...) dans ce programme ? (1 point)
  2. Que va afficher ce programme si l'utilisateur répond 10 ? (1 point)
  3. Que va afficher ce programme si l'utilisateur répond 15 ? (1 point)
  4. Réécris la condition pour que la limite d'âge soit 1616 au lieu de 1212. (1 point)
Voir le corrigé
  1. int(...) convertit la chaîne de caractères renvoyée par input() en nombre entier, afin de pouvoir la comparer avec >= à un nombre.
  2. Il affiche Ce film est interdit pour toi, car 10<1210 < 12 rend la condition age >= 12 fausse.
  3. Il affiche Tu peux voir ce film, car 15⩾1215 \geqslant 12 rend la condition vraie.
  4. if age >= 16:
    

Exercice 4 (4 points) — Écrire un programme

Un magasin applique une réduction de 10 % sur les achats de plus de 50 €, et aucune réduction en dessous.

  1. Écris un programme qui crée une variable montant valant 6060, teste si ce montant est strictement supérieur à 5050, et affiche "Réduction appliquée" ou "Pas de réduction" selon le cas. (3 points)
  2. Le programme doit-il utiliser > ou >= pour tester « plus de 50 € » ? Justifie. (1 point)
Voir le corrigé
  1. montant = 60
    if montant > 50:
        print("Réduction appliquée")
    else:
        print("Pas de réduction")
    
  2. Il faut utiliser > (strictement supérieur), car l'énoncé précise « plus de 50 € » : un achat à exactement 5050 € ne bénéficie donc pas de la réduction. >= inclurait à tort les achats à exactement 5050 €.

Exercice 5 (4 points) — Corriger des erreurs

Le programme suivant contient deux erreurs de syntaxe ou de logique. Recopie-le corrigé.

score = 0
si score = 0
    print("Aucun point marqué")
  1. Identifie la première erreur. (2 points)
  2. Identifie la seconde erreur. (2 points)
Voir le corrigé
  1. Première erreur : si n'existe pas en Python (c'est du français) ; le mot-clé correct est if.
  2. Seconde erreur : if score = 0 utilise = (affectation) au lieu de == (test d'égalité) ; de plus, la ligne du if doit se terminer par :. Version corrigée :
    score = 0
    if score == 0:
        print("Aucun point marqué")