Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Python classique

APERTO-NOTA

Instructions de base

Voir Python/Syntaxe de base

Types de données en Python

Voir Python/Types de données

Les structures, boucles, tests

Voir Python/Syntaxe de base

Utiliser print(), range(), sorted()

Fonctions

Voir Python/Structurer son code

Gestion des erreurs

En Python, la gestion des erreurs permet d’éviter les plantages en interceptant les exceptions (comme une division par zéro ou une mauvaise saisie). Grâce aux blocs try, except, else et finally, on peut contrôler le comportement du programme en cas de problème.

Les exercices suivants vous aideront à :

Exercice : Division protégée

Solution to Exercise 1 #
def division(a, b):
    try:
        print(a / b)
    except ZeroDivisionError:
        print("Erreur : division par zéro interdite.")

# Tests
division(10, 2)  # 5.0
division(5, 0)   # Erreur

Exercice : Conversion sécurisée

Solution to Exercise 2 #
def saisir_entier():
    try:
        n = int(input("Entrez un entier : "))
        print(f"Vous avez saisi : {n}")
    except ValueError:
        print("Erreur : ce n'est pas un entier valide.")

Exemple d’utilisation

- Entrée : 42     → OK
- Entrée : abc    → Erreur
- Entrée : 3.14   → Erreur

Exercice : Accès contrôlé à une liste

Solution to Exercise 3 #
def acces_liste():
    liste = [10, 20, 30]
    try:
        index = int(input("Entrez un index : "))
        print(f"Élément : {liste[index]}")
    except IndexError:
        print("Erreur : index hors limites.")
    except ValueError:
        print("Erreur : veuillez entrer un entier.")

Exemple d’utilisation

- Entrée : 1     → Élément : 20
- Entrée : 5     → Erreur : index hors limites.
- Entrée : a     → Erreur : veuillez entrer un entier.

Exercice : Lecture de fichier

Solution to Exercise 4 #
def lire_fichier(nom_fichier):
    try:
        with open(nom_fichier, 'r') as f:
            contenu = f.read()
            print(contenu)
    except FileNotFoundError:
        print("Erreur : fichier introuvable.")

Exemple d’utilisation

  • lire_fichier(“existant.txt”) → Affiche le contenu

  • lire_fichier(“inexistant.txt”) → Erreur

Exercice : Bloc finally

Solution to Exercise 5 #
def test_finally(x):
    try:
        print(10 / x)
    except ZeroDivisionError:
        print("Erreur : division par zéro.")
    finally:
        print("Fin de l'opération.")

# Tests
test_finally(2)  # 5.0 puis Fin de l'opération
test_finally(0)  # Erreur puis Fin de l'opération

Les entrées/sorties en Python

Les opérations d’entrée/sortie (E/S) permettent à un programme d’interagir avec l’utilisateur ou avec des fichiers. En Python, cela inclut :

Ces mécanismes sont essentiels pour rendre un programme interactif et utile dans des contextes réels.

Exercice : Écrire puis lire un fichier texte

Solution to Exercise 6 #
def ecrire_et_lire_fichier(nom):
    # Étape 1 : saisie utilisateur
    texte = input("Entrez une phrase : ")

    # Étape 2 : écriture dans le fichier
    with open(nom, 'w') as f:
        f.write(texte)

    # Étape 3 : lecture du fichier
    with open(nom, 'r') as f:
        contenu = f.read()
        print("Contenu du fichier :", contenu)

# Exemple d'utilisation
# ecrire_et_lire_fichier("mon_fichier.txt")

Les flux standards en Python

En Python, les flux standards permettent la communication entre un programme et son environnement (souvent le terminal). Ils sont définis dans le module sys.

FluxDescription ObjetPython associé
stdinEntrée standard (ex. : clavier)sys.stdin
stdoutSortie standard (ex. : affichage)sys.stdout
stderrSortie d’erreur standardsys.stderr

Entrée standard (stdin)

import sys
ligne = sys.stdin.readline()
print(f"Vous avez saisi : {ligne}")

Sortie standard (stdout)

import sys
sys.stdout.write("Ceci est une sortie standard.\n")

Sortie d’erreur (stderr)

import sys
sys.stderr.write("Ceci est une erreur.\n")