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

Exam Python

L'examen final évalue les compétences en programmation Python et en analyse de données sur divers sujets tels que la logique métier, les structures de données, les fonctions avancées et la gestion du temps. Les exercices incluent la création de fonctions pour un système de tarification, le développement d'un système de recommandation de formations, le traitement de flux de logs, ainsi que des tâches de nettoyage de données avec Pandas. Les étudiants doivent démontrer leur capacité à appliquer des concepts de programmation pour résoudre des problèmes pratiques.

Transféré par

ghzaoui929
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

Exam Python

L'examen final évalue les compétences en programmation Python et en analyse de données sur divers sujets tels que la logique métier, les structures de données, les fonctions avancées et la gestion du temps. Les exercices incluent la création de fonctions pour un système de tarification, le développement d'un système de recommandation de formations, le traitement de flux de logs, ainsi que des tâches de nettoyage de données avec Pandas. Les étudiants doivent démontrer leur capacité à appliquer des concepts de programmation pour résoudre des problèmes pratiques.

Transféré par

ghzaoui929
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

Examen Final : Programmation Python & Analyse de

Données

Durée estimée : 2h00


L’examen évalue votre capacité à manipuler la logique Python, les structures de données, les
fonctions avancées et les bibliothèques scientifiques (NumPy, Pandas, Datetime).

Exercice 1 : Logique métier et Bases de Python (4 points)


Vous concevez le système de tarification d’une application de VTC (Voiture de Tourisme avec
Chauffeur). L’application demande au client :

• La distance de la course en km.

• Son statut : ”Standard”, ”Premium” ou ”VIP”.

• S’il y a une forte demande (booléen forted emande).


Les règles tarifaires sont les suivantes :

• Le tarif de base est de 5 DH par kilomètre.

• En cas de forted emande, letarif totalestmultipliépar1.5, sauf pourlesclients”V IP ”quinesubissentjamai

• Les clients ”Premium” bénéficient d’une réduction de 10% sur le tarif final.

• Les clients ”VIP” bénéficient d’une réduction de 20% sur le tarif final.

Questions :

1. Créez une fonction calculer tarif(distance, statut, forte demande).

2. Utilisez le principe des clauses de garde pour vérifier si la distance est ≤ 0 ; si oui, retournez
immédiatement 0 avec un message d’erreur.

3. Calculez le tarif final en respectant strictement les règles ci-dessus en utilisant des conditions
if/elif/else.

4. Utilisez un opérateur ternaire pour ajouter un pourboire automatique de 10 DH si la distance


est supérieure à 20 km, sinon 0 DH, et ajoutez-le au total.

1
Exercice 2 : Structures de Données (4 points)
Vous développez un système de recommandation de formations pour une plateforme d’e-learning.
Données initiales :

utilisateurs = [("Amina", 24, "Data"), ("Tarik", 30, "Dev"), ("Sara", 22, "Data")]

cours_dispos = {
"Python Avancé": {"Data", "Dev"},
"Machine Learning": {"Data"},
"ReactJS": {"Dev", "Design"}
}

historique_suivis = {
"Amina": ["Python Avancé"],
"Tarik": ["ReactJS"]
}

Questions :

1. Extraire les noms des utilisateurs dont la spécialité est ”Data” via une compréhension de
liste.

2. Ajouter ”Sara” dans historique suivis.

3. Mettre à jour l’historique de Sara.

4. Identifier les cours non suivis par Amina (utiliser les sets).

5. Théorie : Pourquoi utiliser un Set plutôt qu’une liste pour les spécialités ?

Exercice 3 : Fonctions Avancées et Flux temps réel (4


points)
Flux de logs :

flux = [(’INFO’, 200, ’[Link]’),


(’CRITIQUE’, 500, ’[Link]’),
(’WARN’, 404, ’[Link]’),
(’CRITIQUE’, 502, ’[Link]’)]

Questions :

1. Créer un générateur filtrer menaces(logs).

2. Créer un décorateur @audit log.

3. Implémenter traiter flux securite(logs).

2
Exercice 4 : Gestion du temps et des dates (3 points)
1. Convertir ”15/05/2026” avec [Link]().

2. Ajouter 45 jours avec timedelta.

3. Pourquoi ne pas utiliser months dans timedelta ?

Exercice 5 : Calcul Matriciel avec NumPy (2 points)


Données :

scores = [Link]([
[0.1, 0.8, 0.1],
[0.9, 0.05, 0.05],
[0.3, 0.3, 0.4],
[[Link], 0.5, 0.5]
])

classes = [Link](["Chat", "Chien", "Oiseau"])

Questions :
1. Remplacer NaN par 0 avec [Link] et [Link].

2. Trouver les classes avec [Link](axis=1).

3. Mapper les indices vers les noms de classes.

Exercice 6 : Pandas Data Cleaning (3 points)


DataFrame brut :

id_employe nom salaire departement date_embauche


1 "Amina S." "85000 €" " Finance " "2023-01-15"
2 "Said B." "not available" "IT" "15/04/2022"
3 "Karim T." "92000 €" "finance" NaN
4 "Amina S." "85000 €" "Finance" "2023-01-15"

Questions :
1. Supprimer les doublons.

2. Nettoyer la colonne departement.

3. Nettoyer salaire avec apply().

4. Remplacer les valeurs manquantes par la médiane.

5. Convertir datee mbaucheendatetime(f ormat =′ mixed′ ).

Vous aimerez peut-être aussi