0% ont trouvé ce document utile (0 vote)
1 vues3 pages

TP1 Python

Le document présente des exercices de programmation en Python pour une formation à l'Université Ibn Tofail. Les exercices incluent la création de fonctions pour analyser des notes, créer une fiche d'étudiant et trier/filtrer des étudiants à partir d'une liste de dictionnaires. Chaque exercice est accompagné d'exemples d'appels et de solutions proposées.

Transféré par

akroubmarwan
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1 vues3 pages

TP1 Python

Le document présente des exercices de programmation en Python pour une formation à l'Université Ibn Tofail. Les exercices incluent la création de fonctions pour analyser des notes, créer une fiche d'étudiant et trier/filtrer des étudiants à partir d'une liste de dictionnaires. Chaque exercice est accompagné d'exemples d'appels et de solutions proposées.

Transféré par

akroubmarwan
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

UNIVERSITE IBN TOFAIL

Faculté des Sciences – Kenitra


Département Informatique IA
Année Universitaire 2025/ 2026

Tp1 : Fonctions Avancées, Fichiers &

POO

EXERCICE 1 : Statistiques avec *args

Créez une fonction analyser_notes() qui accepte un nombre variable de notes et retourne un
dictionnaire contenant :

• "min" : la note la plus basse


• "max" : la note la plus haute
• "moyenne" : la moyenne arrondie à 2 décimales
• "mention" : "Excellent" si moyenne ≥ 16, "Bien" si ≥ 14, "Assez bien" si ≥ 12, "Passable" si
≥ 10, "Insuffisant" sinon

Si aucune note n'est fournie, retournez None.

Exemples d'appels attendus :

print(analyser_notes(14, 16, 18, 12)) -->

{'min': 12, 'max': 18, 'moyenne': 15.0, 'mention': 'Bien'}

EXERCICE 1
def analyser_notes(*notes):
if not notes:
return None
moy = round(sum(notes) / len(notes), 2)
if moy >= 16: mention = "Excellent"
elif moy >= 14: mention = "Bien"
elif moy >= 12: mention = "Assez bien"
elif moy >= 10: mention = "Passable"
else: mention = "Insuffisant"
return {"min": min(notes), "max": max(notes), "moyenne": moy, "mention": mention}

print(analyser_notes(14, 16, 18, 12))

EXERCICE 2 :

Créez une fonction creer_fiche() qui reçoit uniquement des paramètres nommés (**kwargs) et
affiche une fiche formatée. La fiche doit :

• Afficher chaque clé/valeur reçue


• Afficher un message d'avertissement si l'une des clés "nom" ou "age" est absente
• Toujours afficher "Statut : Étudiant actif" à la fin, quelle que soit l'entrée

Exemples d'appels attendus :


Professeur Ayoub AMRANI
UNIVERSITE IBN TOFAIL
Faculté des Sciences – Kenitra
Département Informatique IA
Année Universitaire 2025/ 2026

creer_fiche(nom="Ahmed", age=20, filiere="Informatique", ville="Kenitra")

# ──────────────────────────
# Fiche étudiant :
# nom : Ahmed
# age : 20
# filiere : Informatique
# ville : Kenitra
# Statut : Étudiant actif

def creer_fiche(**kwargs):
print("─" * 26)
print("Fiche étudiant :")
for cle, val in [Link]():
print(f" {cle:<8} : {val}")
if "nom" not in kwargs:
print("Avertissement : 'nom' absent!")
if "age" not in kwargs:
print("Avertissement : 'age' absent!")
print(" Statut : Étudiant actif")

creer_fiche(nom="Ahmed", age=20, filiere="Informatique", ville="Kenitra")

EXERCICE 3 : Lambda et filtrage

Vous disposez d'une liste de dictionnaires représentant des étudiants :

etudiants = [
{"nom": "Ali", "note1": 12, "note2": 9, "note3": 14, "groupe": "A"},
{"nom": "Sara", "note1": 18, "note2": 17, "note3": 16, "groupe": "B"},
{"nom": "Karim", "note1": 8, "note2": 10, "note3": 7, "groupe": "A"},
{"nom": "Lina", "note1": 15, "note2": 14, "note3": 13, "groupe": "B"},
{"nom": "Ahmed", "note1": 11, "note2": 10, "note3": 12, "groupe": "A"},
]

En utilisant lambda et les fonctions sorted(), filter():

1. Triez les étudiants par moyenne décroissante


2. Filtrez uniquement ceux du groupe "A" avec une moyenne ≥ 10

EXERCICE 3
etudiants = [
{"nom": "Ali", "note1": 12, "note2": 9, "note3": 14, "groupe": "A"},
{"nom": "Sara", "note1": 18, "note2": 17, "note3": 16, "groupe": "B"},
{"nom": "Karim", "note1": 8, "note2": 10, "note3": 7, "groupe": "A"},
Professeur Ayoub AMRANI
UNIVERSITE IBN TOFAIL
Faculté des Sciences – Kenitra
Département Informatique IA
Année Universitaire 2025/ 2026

{"nom": "Lina", "note1": 15, "note2": 14, "note3": 13, "groupe": "B"},
{"nom": "Ahmed", "note1": 11, "note2": 10, "note3": 12, "groupe": "A"},
]

moy = lambda e: (e["note1"] + e["note2"] + e["note3"]) / 3

# 1. Triés par moyenne décroissante


tries = sorted(etudiants, key=moy, reverse=True)
print([e["nom"] for e in tries])

# 2. Groupe A avec moyenne >= 10


filtres = list(filter(lambda e: e["groupe"] == "A" and moy(e) >= 10, etudiants))

print([e["nom"] for e in filtres])

Professeur Ayoub AMRANI

Vous aimerez peut-être aussi