Aller au contenu principal
4e

Découvrir Python : variables et conditions — Exercices d'application

1. Du bloc au texte : découvrir Python

↩ Revoir le cours

Exercice 1 — ⭐

  1. Quelle est la différence entre la programmation par blocs (Scratch) et la programmation textuelle (Python) ?
  2. Qu’appelle-t-on la « syntaxe » d’un langage de programmation ?
  3. Que se passe-t-il en Python si l’indentation d’une ligne n’est pas correcte ?
Voir le corrigé
  1. Dans Scratch, on assemble des blocs colorés préexistants ; en Python, on écrit directement des instructions sous forme de texte, en respectant des règles précises.
  2. La syntaxe d’un langage est l’ensemble des règles précises qu’il faut respecter pour écrire un programme valide (comment écrire une instruction, où mettre les guillemets, les parenthèses, les deux-points, etc.).
  3. Python affiche une erreur (une IndentationError) : contrairement à d’autres langages, l’indentation fait partie de la syntaxe et n’est pas juste une question de présentation.

2. Variables et types

↩ Revoir le cours

Exercice 2 — ⭐⭐

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

  1. age = 13
  2. pi = 3.14
  3. ville = "Douvrin"
  4. distance = 42.195
Voir le corrigé
  1. age = 13 : c’est un nombre entier, donc de type int.
  2. pi = 3.14 : c’est un nombre à virgule, donc de type float.
  3. ville = "Douvrin" : c’est un texte entre guillemets, donc de type str.
  4. distance = 42.195 : c’est un nombre à virgule, donc de type float.

3. Afficher et demander une saisie

↩ Revoir le cours

Exercice 3 — ⭐⭐

  1. Écris un programme qui crée une variable prenom contenant "Nour", puis affiche "Bonjour Nour !" à l’aide de print().
  2. Écris un programme qui demande à l’utilisateur son prénom avec input(), le stocke dans une variable, puis affiche "Bonjour " suivi du prénom saisi.
  3. Pourquoi faut-il écrire age = int(input("Quel âge as-tu ? ")) plutôt que age = input("Quel âge as-tu ? ") si l’on veut ensuite calculer age + 1 ?
Voir le corrigé
  1. prenom = "Nour"
    print("Bonjour", prenom, "!")
  2. prenom = input("Comment t'appelles-tu ? ")
    print("Bonjour", prenom)
  3. input() renvoie toujours une chaîne de caractères (str), même si l’utilisateur tape des chiffres. Or on ne peut pas additionner un nombre à une chaîne de caractères : il faut d’abord la convertir en nombre entier avec int(...) pour pouvoir ensuite calculer age + 1.

4. Tester une condition : if / else

↩ Revoir le cours

Exercice 4 — ⭐⭐⭐

On donne le programme suivant :

note = 9
if note >= 10:
    print("Admis")
else:
    print("Non admis")
  1. Que va afficher ce programme ? Justifie.
  2. Réécris ce programme pour que la limite d’admission soit 1212 au lieu de 1010.
  3. Écris un programme qui demande une note à l’utilisateur (avec input() et une conversion adaptée) et affiche « Admis » ou « Non admis » selon la même règle qu’à la question 1.
Voir le corrigé
  1. Il affiche Non admis, car 9<109 < 10 : la condition note >= 10 est fausse, donc c’est la branche else qui s’exécute.
  2. note = 9
    if note >= 12:
        print("Admis")
    else:
        print("Non admis")
  3. note = float(input("Quelle est ta note ? "))
    if note >= 10:
        print("Admis")
    else:
        print("Non admis")
    (On utilise float plutôt que int car une note peut être décimale, par exemple 12.512.5.)

5. Les opérateurs de comparaison en Python

↩ Revoir le cours

Exercice 5 — ⭐⭐⭐⭐

  1. Explique la différence entre vies = 3 et vies == 3 en Python.
  2. On donne : vies = 0. Le programme suivant contient une erreur de logique : trouve-la et corrige-la.
    vies = 0
    if vies = 0:
        print("Partie terminée")
  3. Écris un programme qui crée une variable temperature valant −3-3, puis affiche "Il gèle !" si la température est strictement négative, et "Pas de gel" sinon.
Voir le corrigé
  1. vies = 3 donne la valeur 33 à la variable vies (instruction d’affectation). vies == 3 teste si la valeur actuelle de vies est égale à 33, et renvoie True ou False (instruction de comparaison, utilisable dans un if).
  2. L’erreur est d’avoir écrit if vies = 0: avec un seul signe = (affectation) au lieu de if vies == 0: avec deux signes = (comparaison). Python refuse d’ailleurs ce code avec une erreur de syntaxe. Version corrigée :
    vies = 0
    if vies == 0:
        print("Partie terminée")
  3. temperature = -3
    if temperature < 0:
        print("Il gèle !")
    else:
        print("Pas de gel")