NSI 1ère

Utilisation de messages de sortie
Exercices corrigés

Maîtrisez l'utilisation de messages de sortie : print, logging, debug et bonnes pratiques de communication avec l'utilisateur grâce à ces 5 exercices détaillés.

Concepts & Exercices
\(\text{Sortie} = \text{Print} + \text{Debug} + \text{User Feedback}\)
Communication de sortie
Print
print("message")
Sortie standard
Debug
print(f"var={value}")
Pour le développement
User
input("Entrez...")
Interaction utilisateur
📤
Sortie utilisateur : Informations destinées à l'utilisateur final.
🔧
Messages de debug : Informations pour le développeur pendant le développement.
💬
Feedback : Retours clairs et utiles pour guider l'utilisateur.
Exercice 1
Utiliser print pour afficher des messages d'information à l'utilisateur
Exercice 2
Ajouter des messages de debug pour suivre l'exécution d'un algorithme
Exercice 3
Créer des messages d'erreur clairs pour les entrées invalides
Exercice 4
Formatter les messages de sortie pour une meilleure lisibilité
Exercice 5
Utiliser des messages de progression pour les opérations longues
Corrigé : Exercices 1 à 3
1 Messages utilisateur
Définition :

Messages utilisateur : Informations destinées à être lues par l'utilisateur final, souvent pour expliquer le fonctionnement du programme.

Méthode d'affichage :
  1. Utiliser print() pour afficher des messages clairs
  2. Formuler les messages de manière compréhensible
  3. Utiliser des messages pertinents pour guider l'utilisateur
  4. Éviter les messages techniques inutiles pour l'utilisateur
print("Bienvenue dans le programme de calcul") print("Ce programme calcule la moyenne de vos notes") print("Veuillez entrer vos notes une par une")
Étape 1 : Identifier les messages utiles

Déterminer quels messages aideront l'utilisateur à comprendre le programme

Étape 2 : Rédiger les messages clairement

Utiliser un langage simple et éviter le jargon technique

Étape 3 : Placer les messages au bon endroit

Afficher les messages au moment opportun dans le programme

Messages utilisateur :

Messages clairs et utiles qui guident l'utilisateur dans l'utilisation du programme

Règles appliquées :

Clarté : Les messages doivent être compréhensibles pour l'utilisateur

Pertinence : Afficher uniquement les informations utiles

Contexte : Les messages doivent être adaptés au contexte d'utilisation

2 Messages de debug
Définition :

Messages de debug : Informations temporaires pour aider le développeur à comprendre l'exécution du programme.

def tri_bulle_debug(tableau): n = len(tableau) print(f"[DEBUG] Tableau initial: {tableau}") # Message de debug for i in range(n): print(f"[DEBUG] Itération {i}: début boucle externe") # Message de debug for j in range(0, n-i-1): print(f"[DEBUG] Comparaison: {tableau[j]} et {tableau[j+1]}") # Message de debug if tableau[j] > tableau[j+1]: tableau[j], tableau[j+1] = tableau[j+1], tableau[j] print(f"[DEBUG] Échange effectué: {tableau}") # Message de debug print(f"[DEBUG] Tableau final: {tableau}") # Message de debug return tableau
Étape 1 : Identifier les points clés

Repérer les endroits où l'état du programme doit être surveillé

Étape 2 : Ajouter des messages descriptifs

Utiliser des préfixes comme "[DEBUG]" pour distinguer les messages

Étape 3 : Afficher les variables pertinentes

Inclure les valeurs des variables critiques dans les messages

[DEBUG] Tableau initial: [3, 1, 4, 1, 5] [DEBUG] Itération 0: début boucle externe [DEBUG] Comparaison: 3 et 1 [DEBUG] Échange effectué: [1, 3, 4, 1, 5] [DEBUG] Comparaison: 3 et 4 [DEBUG] Comparaison: 4 et 1 [DEBUG] Échange effectué: [1, 3, 1, 4, 5] ...
Messages de debug :

Informations détaillées pour suivre l'exécution du programme pendant le développement

Règles appliquées :

Identification : Marquer clairement les messages de debug

Variables : Afficher les valeurs des variables critiques

Suppression : Supprimer les messages de debug avant la production

3 Messages d'erreur
Définition :

Messages d'erreur : Informations claires et utiles pour indiquer à l'utilisateur ce qui s'est mal passé et comment le corriger.

def diviser(a, b): if b == 0: print("ERREUR: Impossible de diviser par zéro!") print("Veuillez entrer un diviseur différent de 0.") return None elif not isinstance(a, (int, float)) or not isinstance(b, (int, float)): print("ERREUR: Les arguments doivent être des nombres!") print("Veuillez entrer des valeurs numériques valides.") return None else: resultat = a / b print(f"Résultat: {a} / {b} = {resultat}") return resultat
Étape 1 : Anticiper les erreurs possibles

Identifier les situations qui peuvent entraîner des erreurs

Étape 2 : Formuler des messages clairs

Expliquer ce qui s'est mal passé et comment le corriger

Étape 3 : Fournir des solutions

Donner des instructions précises pour corriger l'erreur

ERREUR: Impossible de diviser par zéro! Veuillez entrer un diviseur différent de 0.
Messages d'erreur :

Messages clairs qui expliquent l'erreur et proposent une solution

Règles appliquées :

Explication : Expliquer clairement ce qui s'est mal passé

Solution : Proposer une façon de corriger l'erreur

Politesse : Utiliser un ton respectueux et utile

Corrigé : Exercices 4 à 5
4 Formatage des messages
Définition :

Formatage des messages : Organisation visuelle des messages pour améliorer la lisibilité et la compréhension.

def afficher_resultats(notes, moyenne): print("=" * 40) print(" RAPPORT DES NOTES") print("=" * 40) print(f"Notes saisies: {notes}") print("-" * 40) print(f"Moyenne: {moyenne:.2f}") print("-" * 40) print("Fin du rapport") print("=" * 40)
Étape 1 : Planifier la structure visuelle

Déterminer comment organiser les informations dans le message

Étape 2 : Utiliser des séparateurs

Appliquer des lignes ou des caractères pour structurer le message

Étape 3 : Formater les données

Utiliser des formats appropriés pour les nombres, dates, etc.

======================================== RAPPORT DES NOTES ======================================== Notes saisies: [15, 12, 18, 10, 14] ---------------------------------------- Moyenne: 13.80 ---------------------------------------- Fin du rapport ========================================
Messages formatés :

Sortie bien structurée qui améliore la lisibilité et la compréhension

Règles appliquées :

Structuration : Utiliser des séparateurs pour organiser les informations

Alignement : Aligner les éléments pour une meilleure lisibilité

Formatage : Formater les données selon leur type (nombres, dates, etc.)

5 Messages de progression
Définition :

Messages de progression : Informations qui indiquent l'avancement d'une tâche longue pour rassurer l'utilisateur.

def traitement_long(nombres): total = len(nombres) print(f"Début du traitement de {total} éléments...") for i, nombre in enumerate(nombres): # Simuler un traitement long resultat = nombre ** 2 # Traitement réel # Afficher la progression pourcentage = (i + 1) / total * 100 print(f"Progression: {pourcentage:.1f}% ({i+1}/{total})") # Autres opérations... print("Traitement terminé!") return [x**2 for x in nombres]
Étape 1 : Calculer la progression

Déterminer le pourcentage d'avancement de la tâche

Étape 2 : Afficher l'état régulièrement

Mettre à jour l'utilisateur à intervalles réguliers

Étape 3 : Fournir des estimations

Si possible, indiquer le temps restant ou les étapes restantes

Début du traitement de 1000 éléments... Progression: 10.0% (100/1000) Progression: 20.0% (200/1000) Progression: 30.0% (300/1000) ... Progression: 100.0% (1000/1000) Traitement terminé!
Messages de progression :

Informations régulières qui rassurent l'utilisateur sur l'avancement du processus

Règles appliquées :

Fréquence : Ne pas surcharger l'utilisateur avec trop de messages

Clarté : Indiquer clairement le pourcentage d'avancement

Utilité : Fournir des informations utiles pour gérer les attentes

Cours bien détaillé
\(\text{Message} = \text{Type} \times \text{Contenu} \times \text{Format}\)
Éléments d'un message
🎯
Définition : Les messages de sortie sont des informations transmises par le programme à l'utilisateur ou au développeur.
📏
Objectif : Communiquer des informations importantes de manière claire et efficace.
📐
Types : Messages utilisateur, messages de debug, messages d'erreur, messages de progression.
📝
Qualité : Les messages doivent être clairs, pertinents et bien formatés.
💡
Conseil : Utilisez des messages descriptifs pour guider l'utilisateur
🔍
Attention : N'oubliez pas de supprimer les messages de debug en production
Astuce : Formatez vos messages pour une meilleure lisibilité
📋
Méthode : Testez vos messages avec des utilisateurs réels
Vérification : Vérifiez que tous les messages sont utiles et clairs
Types de messages :
  • Information : Messages pour informer l'utilisateur du fonctionnement du programme
  • Debug : Messages pour le développeur pendant le développement
  • Erreur : Messages indiquant qu'une erreur s'est produite
  • Progression : Messages indiquant l'avancement d'une tâche longue
  • Confirmation : Messages confirmant l'exécution d'une action
Règles importantes :
  • Les messages doivent être compréhensibles pour le public cible
  • Les messages de debug doivent être identifiables et supprimables
  • Les messages d'erreur doivent proposer une solution
  • Les messages doivent être adaptés au contexte d'utilisation
  • La quantité de messages doit être équilibrée (ni trop ni trop peu)
Utilisation de messages de sortie Débogage et vérification