Module 1 • Séance N°1

Évaluation Diagnostique & Consolidation des Bases Python

Niveau : 3e Sections Scientifiques • Durée : 1h 30mn

Objectifs & Déroulement

Objectifs Pédagogiques

A. Savoirs (Connaissances)
  • Identifier la structure générale d'un algorithme et la déclaration des objets (Variables et Constantes).
  • Distinguer les types de données simples : Entier, Réel, Caractère, Booléen, Chaîne de caractères.
  • Maîtriser la correspondance entre la syntaxe algorithmique officielle et sa traduction en Python (int, float, bool, str).
B. Savoir-faire (Compétences pratiques)
  • Exprimer les opérations d'entrée/sortie (Lire / input(), Écrire / print()) et d'affectation ( / =).
  • Effectuer les conversions de types explicites (int(), float(), str()).
  • Écrire, tester et exécuter une séquence d'instructions simple dans l'Python.

Déroulement de la Séance (90 minutes)

Phase Durée Activité Enseignant / Élève
1. Diagnostic 15 min Vérification des acquis & QCM sur les prérequis de 2ème année (types & affectation).
2. Synthèse 25 min Rappel théorique structuré sur les conventions algorithmiques.
3. Guidée 35 min Analyse du problème de pénalité de retard, TDO et saisie sous Thonny.
4. Évaluation 15 min Vérification individuelle des scripts Python et test avec jeux d'essais.

Résumé de Cours

Structure d'un algorithme

I. Structure Générale d'un Algorithme & Déclaration (TDO)

Diagramme Vectoriel : Architecture d'un Algorithme (Entrées → Traitement → Sorties) Architecture générale d'un algorithme
Algorithme (Pseudo-code) :
ALGORITHME Nom_Algorithme
DEBUT
    // Séquence d'instructions
FIN
Tableau de Déclaration des Objets (TDO) :
Objet Type / Nature Rôle
nom Chaîne de caractères Nom de l'utilisateur
age Entier Âge de l'utilisateur
moyenne Réel Moyenne calculée
PI Constante = 3.14 Valeur constante

II. Correspondance Algorithme ➔ Python

Concept Syntaxe Algorithmique (2024-2025) Traduction Python Remarques
Type Entier Entier int Ex: 12, -5
Type Réel Réel float Ex: 14.5, 3.14
Type Chaîne Chaîne de caractères str Ex: "Tunisie"
Type Booléen Booléen bool True ou False
Affectation Variable ← Expression Variable = Expression x = 5
Saisie (Entrée) Lire(Variable) Variable = input("Message : ") input() renvoie toujours un str
Affichage (Sortie) Écrire("Message", Variable) print("Message", Variable) Virgule comme séparateur

III. Conversions de Types en Python

Puisque input() renvoie systématiquement une chaîne de caractères (str), une conversion explicite est indispensable avant tout calcul numérique :

Exemples de conversions explicites
# Conversion d'une chaîne vers un entier
nb = int(input("Donner un nombre entier : "))

# Conversion d'une chaîne vers un réel
prix = float(input("Donner le prix : "))

# Conversion d'un nombre vers une chaîne (pour concaténation)
message = "Votre note est : " + str(15.5)

Activités Pratiques

Activité 1 : Analyse et correction d'une séquence de code

Analyse et correction d'une séquence de code (10 min)

Exercice Diagnostique

Analyse le script Python ci-dessous. Pourquoi ce code produit-il un résultat inattendu ?

Séquence erronée :
a = input("Donner a : ")
b = input("Donner b : ")
somme = a + b
print("La somme est :", somme)
Analyse & Solution :

Analyse de l'erreur : Si l'utilisateur saisit 5 pour a et 3 pour b, la variable somme vaudra "53" (concaténation de chaînes) au lieu de 8 !

Séquence corrigée
a = int(input("Donner a : "))
b = int(input("Donner b : "))
somme = a + b
print("La somme est :", somme)

Activité 2 : Mini-projet calcul de pénalité de retard

Calcul de pénalité de retard (25 min)

Énoncé du Problème :

On souhaite concevoir une application pour une bibliothèque scolaire qui calcule le montant total de pénalité de retard pour l'emprunt d'un livre.

  • Le système demande le nom de l'élève, le titre du livre et le nombre de jours de retard.
  • La pénalité de base est fixée à 0.500 DT par jour de retard.
  • Une taxe fixe de gestion de 1.200 DT est ajoutée au montant total.
Formule mathématique : $$ \text{montant\_total} = (\text{nb\_jours} \times \text{TARIF\_JOUR}) + \text{TAXE\_FIXE} $$

  • Entrées : Nom de l'élève (nom : Chaîne), Titre du livre (titre : Chaîne), Jours de retard (nb_jours : Entier).
  • Sortie : Montant total à payer (montant_total : Réel).
  • Traitement : montant_total = (nb_jours * TARIF_JOUR) + TAXE_FIXE.

Objet Type / Nature Rôle
nom Chaîne de caractères Nom de l'élève
titre Chaîne de caractères Titre du livre
nb_jours Entier Jours de retard
montant_total Réel Montant total final
TARIF_JOUR Constante = 0.500 Tarif journalier
TAXE_FIXE Constante = 1.200 Frais de gestion

ALGORITHME Calcul_Penalite
DEBUT
    Écrire("Nom de l'élève : ")
    Lire(nom)
    Écrire("Titre du livre : ")
    Lire(titre)
    Écrire("Nombre de jours de retard : ")
    Lire(nb_jours)
    
    montant_total ← (nb_jours * TARIF_JOUR) + TAXE_FIXE
    
    Écrire("Élève : ", nom)
    Écrire("Livre : ", titre)
    Écrire("Montant total de la pénalité : ", montant_total, " DT")
FIN

script_penalite.py
# Declarations des constantes
TARIF_JOUR = 0.500
TAXE_FIXE = 1.200

# Saisie des donnees
nom = input("Nom de l'élève : ")
titre = input("Titre du livre : ")
nb_jours = int(input("Nombre de jours de retard : "))

# Traitement
montant_total = (nb_jours * TARIF_JOUR) + TAXE_FIXE

# Affichage des resultats
print("\n--- FICHE DE PÉNALITÉ ---")
print("Élève :", nom)
print("Livre :", titre)
print("Montant total à payer :", montant_total, "DT")

Bac à Sable : Exécuter le programme Python

Thonny Simulator

Saisis les données ci-dessous pour simuler l'exécution réelle du programme Python dans Python IDE.

Console Python 3.11 - Thonny
>>> %Run script_penalite.py
Nom de l'élève : {{ simNom || '...' }}
Titre du livre : {{ simTitre || '...' }}
Nombre de jours de retard : {{ simJours !== null ? simJours : '...' }}
--- FICHE DE PÉNALITÉ ---
Élève : {{ simNom }}
Livre : {{ simTitre }}
Montant total à payer : {{ computedPenalite.toFixed(3) }} DT
>>> Process finished with exit code 0
Remplissez tous les champs ci-dessus pour afficher la console d'exécution...

Auto-évaluation

Quiz

1. Quelle est la valeur retournée systématiquement par l'instruction input() en Python ?
  • Un entier (int)
  • Une chaîne de caractères (str)
  • Un réel (float)
  • Dépend de la saisie de l'utilisateur
2. Comment écrit-on l'opération d'affectation en syntaxe algorithmique officielle 2024-2025 ?
  • Variable = Expression
  • Variable := Expression
  • Variable ← Expression
  • Variable -> Expression
3. Que vaut la variable 'x' après l'exécution de : x = '10' + '20' ?
  • 30
  • 1020
  • Une erreur de type (TypeError)
  • None
4. Quelle fonction permet de convertir la chaîne '14.5' en nombre flottant ?
  • int('14.5')
  • str('14.5')
  • float('14.5')
  • real('14.5')
5. Quelle est la valeur de la variable 'res' après : res = int('15') + 5 ?
  • 20
  • '155'
  • 15.5
  • Une erreur de syntaxe