⭐Exercice 1:
Soit le fichier [Link], fourni en pièce jointe. Écrire un programme Python qui permet de :
1. Lire le fichier ligne par ligne.
2. Afficher chaque ligne préfixée par son numéro.
3. Compter et afficher le nombre total de mots dans le fichier.
with open("[Link]", "r", encoding="utf-8") as f:
lignes = [Link]()
i = 1
nb_mots = 0
for ligne in lignes:
print(f"Ligne {i} : {ligne}")
mots = [Link]()
nb_mots_ligne = 0
for mot in mots:
nb_mots_ligne += 1
nb_mots += nb_mots_ligne
i += 1
print(f"Nombre total de mots : {nb_mots}")
Ligne 1 : Dans le silence d’une nuit étoilée,
Ligne 2 : Le vent fredonne une douce mélodie.
Ligne 3 : Les arbres dansent en secret,
Ligne 4 : Et la lune veille, paisible, infinie.
Ligne 5 :
Ligne 6 : Chaque étoile a son histoire,
Ligne 7 : Un rêve, une lumière, un espoir.
Ligne 8 : Et le poète, plume à la main,
Ligne 9 : Écrit au rythme du destin.
Nombre total de mots : 46
⭐Exercice 2:
Écrire un programme Python qui :
1. Demande à l'utilisateur de saisir des lignes de texte jusqu'à ce qu'il tape "stop".
2. Enregistre chaque ligne saisie dans un fichier [Link], en mode append.
with open("[Link]", "a") as f:
while True:
ligne = input("> ")
if [Link]() == "stop":
break
[Link](ligne + "")
> yyy
> stop
⭐Exercice 3:
Soit le fichier [Link], fourni en pièce jointe. Écrire un programme Python qui :
1. Lit le fichier CSV avec le module csv.
2. Affiche les noms des étudiants ayant une moyenne supérieure à 14.
import csv
with open("[Link]", newline="", encoding="utf-8") as f:
reader = [Link](f)
for etu in reader:
if float(etu["moyenne"]) > 14:
print(etu["nom"])
Ali
Karim
Leila
⭐Exercice 4:
Écrire un programme Python qui permet de:
1. Créer une liste de dictionnaires contenant les données de quelques livres (titre, auteur,
année).
2. Écrire ces données dans un fichier [Link] avec [Link].
import csv
livres = [
{"titre": "Python pour tous", "auteur": "M. Dupont", "annee":
2020},
{"titre": "Data Science", "auteur": "S. Martin", "annee": 2022},
]
with open("[Link]", "w", newline="") as f:
writer = [Link](f, fieldnames=["titre", "auteur",
"annee"])
[Link]()
[Link](livres)
⭐Exercice 5:
Écrire un programme Python qui :
1. Crée une structure contenant une liste d'articles (nom, quantité, prix unitaire).
2. Calcule le prix total.
3. Enregistre cette structure dans un fichier JSON [Link].
import json
panier = {
"articles": [
{"nom": "Stylo", "quantite": 2, "prix": 1.5},
{"nom": "Cahier", "quantite": 3, "prix": 2.0},
]
}
panier["total"] = sum(a["quantite"] * a["prix"] for a in
panier["articles"])
with open("[Link]", "w", encoding="utf-8") as f:
[Link](panier, f, indent=4)
⭐ Exercice 6 :
Écrire un programme Python qui :
1. Crée une classe Etudiant avec nom, âge et notes.
2. Instancie un objet et le sauvegarde dans un fichier [Link] avec le module pickle.
import pickle
class Etudiant:
def __init__(self, nom, age, notes):
[Link] = nom
[Link] = age
[Link] = notes
etudiant = Etudiant("Ali", 21, [14.5, 16, 15])
with open("[Link]", "wb") as f:
[Link](etudiant, f)
⭐Exercice 7:
Soient les fichiers [Link] et [Link], fournis en pièces jointes (colonnes : nom, note).
Écrire un programme Python qui :
1. Lit les deux fichiers CSV.
2. Fusionne les données dans une seule liste.
3. Trie les étudiants par nom.
4. Enregistre le résultat dans un nouveau fichier notes_total.csv.
import csv
# Lire les deux fichiers CSV
etudiants = []
with open("[Link]", newline="", encoding="utf-8") as f1:
reader1 = [Link](f1)
for row in reader1:
[Link](row)
with open("[Link]", newline="", encoding="utf-8") as f2:
reader2 = [Link](f2)
for row in reader2:
[Link](row)
# Trier la liste des étudiants par nom
etudiants_trie = sorted(etudiants, key=lambda x: x["nom"])
# Écrire le résultat dans un nouveau fichier
with open("notes_total.csv", "w", newline="", encoding="utf-8") as
f_out:
champs = ["nom", "note"]
writer = [Link](f_out, fieldnames=champs)
[Link]()
[Link](etudiants_trie)
⭐ Exercice 8 :
Soient les fichiers produits_2023.json et produits_2024.json, fournis en pièces jointes. Écrire un
programme Python qui :
1. Compare les deux fichiers (liste de produits avec ID, nom, prix).
2. Identifie les nouveaux produits apparus en 2024.
3. Sauvegarde cette différence dans un fichier nouveaux_produits.json.
import csv
# Lire les deux fichiers CSV
etudiants = []
with open("[Link]", newline="") as f1:
reader1 = [Link](f1)
for row in reader1:
[Link](row)
with open("[Link]", newline="") as f2:
reader2 = [Link](f2)
for row in reader2:
[Link](row)
# Trier la liste des étudiants par nom
etudiants_trie = sorted(etudiants, key=lambda x: x["nom"])
# Écrire le résultat dans un nouveau fichier
with open("notes_total.csv", "w", newline="", encoding="utf-8") as
f_out:
champs = ["nom", "note"]
writer = [Link](f_out, fieldnames=champs)
[Link]()
[Link](etudiants_trie)
⭐ Exercice 9:
Soient les fichiers [Link], [Link], [Link], fournis en pièces jointes. Écrire un
programme Python qui :
1. Désérialise les objets.
2. Calcule la moyenne générale de tous les étudiants.
3. Affiche un classement selon la moyenne.
import pickle
# Liste des fichiers à charger
fichiers = ["[Link]", "[Link]", "[Link]"]
etudiants = []
# Charger les objets
for fichier in fichiers:
with open(fichier, "rb") as f:
e = [Link](f)
moyenne = sum([Link]) / len([Link])
[Link]({"nom": [Link], "moyenne": moyenne})
# Trier les étudiants par moyenne décroissante
classement = sorted(etudiants, key=lambda x: x["moyenne"],
reverse=True)
# Affichage
print("Classement des étudiants :")
for i, etu in enumerate(classement, start=1):
print(f"{i}. {etu['nom']} - Moyenne : {etu['moyenne']:.2f}")
Classement des étudiants :
1. Fatma - Moyenne : 15.83
2. Ahmed - Moyenne : 14.33
3. Yassine - Moyenne : 12.50