Python
Licence 3
Séance 4
Souleymane BAH
bsouleymane@[Link]
Plan de la séance
• Révision cours passé
• Contrôle du devoir de maison
• SQL avec Python (suite et fin)
• Fonctions
• Projet final
• Discussion
• Ressources pour aller plus loin
mercredi 23 novembre 2022 2
Révision cours passé
1. Fichiers et persistance ?
2. Ouvrir fichier ?
3. Modes ouverture ?
• 'w' vs 'a'
4. De quoi Python à besoin pour interagir avec le SGBD MySQL ?
mercredi 23 novembre 2022 3
Contrôle du devoir de maison
1. Ecrire un code qui demande un nom d’un fichier existant
2. Puis ouvre le fichier
3. Puis affiche ses lignes
mercredi 23 novembre 2022 4
SQL avec Python 1/13
• WampServer
• Windows Apache MySQL PHP
• Télécharger :
• [Link]
• Installer
• Choisir le navigateur et l’éditeur de texte par défaut
• Démarrer WampServer
mercredi 23 novembre 2022 5
SQL avec Python 2/13
• Bonus : PORT OCCUPÉ PAR PROCESSUS + ARRÊT PROCESSUS
• Ouvrir CMD en tant qu’administrateur
• > netstat -bano | more
• Rechercher le PID du processus écoutant sur le port 3306
• Ouvrir le Gestionnaire de tâches
• Ajouter PID au Gestionnaire de tâches
• Clic droit PID Classer par PID Tuer processus
mercredi 23 novembre 2022 6
SQL avec Python 3/13
• Connecteur Python
• Télécharger puis Installer Microsoft Visual C++ 2015
• [Link]
• Télécharger puis Installer le connecteur
• [Link]
mercredi 23 novembre 2022 7
SQL avec Python 4/13
• Connexion : [Link]
mercredi 23 novembre 2022 8
SQL avec Python 5/13
• Création base de données : [Link]
mercredi 23 novembre 2022 9
SQL avec Python 6/13
• Voir bases de données existantes : view_db.py
• phpMyAdmin : [Link]
• Utilisateur : root
• Mot de passe : VIDE (pas de mot de passe)
• Python :
mercredi 23 novembre 2022 10
SQL avec Python 7/13
• Création table : create_table.py
mercredi 23 novembre 2022 11
SQL avec Python 8/13
• Création table : view_tables.py
• phpMyAdmin : [Link]
• Utilisateur : root
• Mot de passe : VIDE (pas de mot de passe)
• Python :
mercredi 23 novembre 2022 12
SQL avec Python 9/13
• Insérer données : [Link]
mercredi 23 novembre 2022 13
SQL avec Python 10/13
• Voir données : view_data.py
• phpMyAdmin : [Link]
• Utilisateur : root
• Mot de passe : VIDE (pas de mot de passe)
• Python :
mercredi 23 novembre 2022 14
SQL avec Python 11/13
• Filtrer les données : [Link]
• Python :
mercredi 23 novembre 2022 15
SQL avec Python 12/13
• Mise à jour de données : [Link]
• Vérifier (phpMyAdmin et Python)
mercredi 23 novembre 2022 16
SQL avec Python 13/13
• Filtrer les données : [Link]
• Vérifier (phpMyAdmin et Python)
mercredi 23 novembre 2022 17
Fonctions 1/3
• Répétitions dans code
• Fonctions : exécuter le même code sur différentes valeurs
• Définition function
• def nom_function(param_1, param_2, …, param_n):
# code
return valeur_de_retour
• Appel function : les arguments effectifs
• ma_variable = ma_function(arg_1, arg_2, …, arg_n)
mercredi 23 novembre 2022 18
Fonctions 2/3
TP 7 : ma calculatrice modulaire
• Ecrire les fonctions somme(), diff(), produit(), division(), modulo(),
plus_grand() qui prennent deux nombres comme paramètres et qui
effectuent respectivement leurs somme, difference, produit, division,
modulo et comparaison (renvoie le plus grand)
• Ecrire du code pour tester votre programme :
• entrez deux nombres (réels)
• effectuez l’ensemble des opérations
mercredi 23 novembre 2022 19
Fonctions 3/3
TP 8 : mon traitement de texte modulaire
• Ecrire la fonction ouvrir_fichier() qui prend en paramètre le nom d’un
fichier et le mode d’ouverture et renvoie l’identifiant de fichier
• Ecrire du code pour tester votre programme
• Ecrire la fonction ecrire_ligne_fichier() qui prend deux paramètres : le nom
d’un fichier et une ligne de texte. La fonction ajoute ensuite la ligne dans le
fichier (en utilisant ouvrir_fichier())
• Ecrire du code pour tester votre programme
• Ecrire la fonction lire_fichier() qui prend en paramètre le nom d’un fichier
et qui affiche son contenu (en utilisant ouvrir_fichier())
• Ecrire du code pour tester votre programme
mercredi 23 novembre 2022 20
Projet final : Application de gestion des notes 1/4
• Vous avez été retenu pour réaliser l’application de gestion des notes de
votre école. Le cahier de charges parle des fonctionnalités ci-après :
• Gestion des étudiants : ajout, modification, recherche et suppression. Il faut
noter que chaque étudiant a un matricule unique
• Gestion des matières : ajout, modification, recherche et suppression. Chaque
matière a un coefficient
• Gestion des notes : ajout, modification, recherche et suppression. Il existe trois
évaluations : devoir, examen et projet. L’examen a un coefficient de 2 par
rapport aux autres : moyenne = (devoir + examen*2 + projet) / 4
• Génération de relevés PDF : l’application doit pouvoir générer le relevé de
notes de chaque élève en version PDF (1 fichier PDF par élève)
mercredi 23 novembre 2022 21
Projet final : Application de gestion des notes 2/4
• Vous avez été retenu pour réaliser l’application de gestion des notes de votre
école. Le cahier de charges parle des contraintes techniques suivantes :
• Utilisation de fonctions
• Stockage des données dans une base de données MySQL
• Code lisible, élégant et maintenable
mercredi 23 novembre 2022 22
Projet final : Application de gestion des notes 3/4
• Travail à rendre
• Rapport écrit contenant les noms des membres du groupe (4 membres max) et
présentant la démarche utilisée.
• Joindre le code et le schéma de la base SQL (code Python de création de la base et des
tables)
• ÇA DOIT S’EXÉCUTER TOUT SEUL
• Envoyer à :
• bsouleymane@[Link]
• Objet du mail : PROJET PYTHON L3 UATM
• Date limite : le dimanche 25 décembre 2022 à 23h59
mercredi 23 novembre 2022 23
Projet final : Application de gestion des notes 4/4
• Ressources
• Générer un PDF depuis Python : utiliser la librairie ReportLab
• Installation : en ligne de commande (CMD) en mode administrateur
• python -m pip install reportlab
• Utilisation : [Link]
mercredi 23 novembre 2022 24
Projet final : Application de gestion des notes
QUESTIONS ?
mercredi 23 novembre 2022 25
Discussion
• Examen final
• Reprendre et comprendre totalement le cours
• Reprendre tous les codes (devoirs de maison compris)
• Sinon ~= 0
mercredi 23 novembre 2022 26
Ressources pour aller plus loin
• Graphical User Interface : [Link]
mercredi 23 novembre 2022 27
M E R C I
mercredi 23 novembre 2022 28