🐍 INF2 - Travaux Pratiques & Dirigés en Python Ce dépôt regroupe l'ensemble des codes sources réalisés dans le cadre de l'UV INF2 à l'UTC, dédiée à la programmation orientée objet et aux structures de données en Python .
Les programmes sont écrits en Python , organisés par TD et TP dans des dossiers indépendants. Les rendus des TP sont au format Jupyter Notebook et peuvent être visualisés directement sur GitHub ou exécutés localement.
TD Thème principal Dossier TD01 Structures de contrôle : boucles imbriquées, affichages de motifs TD/TD01/TD02 Récursivité : suite de Fibonacci, fonctions récursives TD/TD02/TD03 Programmation orientée objet : classes, encapsulation, getters/setters TD/TD03/TD04 Structures de données : graphes, sommets, arêtes TD/TD04/TD05 POO avancée : héritage, propriétés, manipulation d'images (PIL) TD/TD05/TD06 Structures de données : piles, files, vérification de parenthèses TD/TD06/TD07 Fichiers et NumPy : lecture/écriture, courbes, données CSV TD/TD07/TD08 Interfaces graphiques avec Tkinter TD/TD08/TD09 Bases de données relationnelles avec SQLite TD/TD09/TD11 Application web Django : modèles, vues, formulaires, templates TD/TD11/TD12 Calcul matriciel et visualisation avec NumPy TD/TD12/
TP Thème principal Dossier TP1 Introduction à Python : bases de la programmation, corrections fournies TP/TP1/TP2 Récursivité : palindromes, chiffrement de César, évaluation de mots de passe TP/TP2/TP3 Géolocalisation et POO : coordonnées GPS via Google Maps API TP/TP3/TP4 Fichiers et Matplotlib : lecture de données, tracé de courbes et formes TP/TP4/TP5 Interface graphique Tkinter : calculatrice avec gestion d'erreurs TP/TP5/TP6 Application web Django : authentification, profils, simulations TP/TP6/
TD01 - Structures de contrôle Fichier Contenu TD1-1.pyAffichage de pyramides de chiffres avec des boucles imbriquées TD1-1-Alternatif.pyVariante de la pyramide avec une approche alternative TD1-2.py à TD1-8-Final.pyExercices progressifs sur les boucles et structures de contrôle
Fichier Contenu TD2-1.pySuite de Fibonacci : calcul récursif et affichage jusqu'à une limite TD2-2.pyAutres fonctions récursives classiques TD2-3.py / TD2-3-alternatif.py / TD2-3-suite.pyExercice avancé de récursivité avec variantes
TD03 - Programmation orientée objet Fichier Contenu TD3-1.pyClasse Date : encapsulation, getters/setters, validation des jours par mois TD3-1-correction.pyCorrection commentée de l'exercice 1 TD3-2.pyClasse avec héritage et redéfinition de méthodes TD3-2-correction.pyCorrection commentée de l'exercice 2
TD04 - Structures de données : graphes Fichier Contenu TD4-1.pyClasse Sommet : identifiant, encapsulation, comptage des instances TD4-1.1.pyExtension de la classe Sommet TD4-2.pyClasse Graphe : gestion des arêtes et parcours Revision.pyExercices de révision sur les structures de données
Fichier Contenu MyNotes.pyClasse Note avec propriétés Python, héritage et manipulation d'images via PIL
Fichier Contenu TD6-1.pyVérification de parenthèses équilibrées avec une pile (collections.deque) TD6-2.pyImplémentation et manipulation d'une file TD6-3.pyExercice avancé sur les structures LIFO/FIFO
Fichier Contenu EX1.pyGénération de fichiers de valeurs mathématiques (sinus, distances) avec NumPy EX2.pyLecture et traitement de fichiers CSV de notes EX3.pyAnalyse de données CO₂ (co2-annmean-mlo.csv) affichage_graphique.pyModule utilitaire de tracé graphique partagé
TD08 - Interfaces graphiques Tkinter Fichier Contenu EX1.pyFenêtre Tkinter centrée, dimensionnement dynamique EX2.pyWidgets interactifs : boutons, labels, champs de saisie EX3.pyCanvas et dessin de formes géométriques EX4.pyApplication graphique complète multi-composants
TD09 - Bases de données SQLite Fichier Contenu EX1.pyConnexion SQLite, exécution de requêtes SQL, affichage des résultats
TD11 - Application web Django Application Django complète de gestion de cours :
Composant Contenu gestion_cours/models.pyModèles Bureau, Intervenant, Cours avec contraintes d'unicité gestion_cours/views.pyVues CRUD pour les cours et intervenants gestion_cours/forms.pyFormulaires Django associés gestion_cours/templates/Templates HTML : base, création de cours, structure manage.pyPoint d'entrée de l'application Django
TD12 - Calcul matriciel et visualisation Fichier Contenu EX1.pyGénération de matrices aléatoires avec colonne biais (NumPy) EX2.pyOpérations matricielles et visualisation EX3.pyExercice de calcul et affichage graphique
TP1 - Introduction à Python Exercices fondamentaux avec corrections fournies :
Dossier Contenu TP1/TP1.ipynbNotebook principal du TP1 Corrections TP1/ex1.py à ex6.pyCorrections officielles des 6 exercices
TP2 - Récursivité et manipulation de chaînes Exercice Contenu Q1 Fonction récursive ispalindrome - vérification de palindromes Q2 Chiffrement de César - décalage alphabétique avec crypter Q3 Évaluation de la force d'un mot de passe (score pondéré)
📓 Notebook : TP2 - INF2.ipynb
TP3 - Géolocalisation et POO Exercice Contenu EX1 Classe Lieu avec récupération automatique des coordonnées GPS via Google Maps API EX2 Calcul de distances entre lieux et affichage carte
📓 Notebook : TP3 - INF2.ipynb
TP4 - Fichiers et Matplotlib Exercice Contenu Fichiers texte Lecture de admis.txt / concours.txt, traitement de données de concours Fichiers CSV Analyse de math.csv / math2.csv avec statistiques descriptives Matplotlib Tracé de courbes cosinus et cercles colorés
📓 Notebook : TP4 - INF2.ipynb
TP5 - Interface graphique : Calculatrice Tkinter Implémentation d'une calculatrice graphique gérant :
Opérations de base (+, −, ×, ÷) et fonctions mathématiques (sin, cos, tan, √, puissance) Gestion robuste des erreurs : division par zéro, syntaxe invalide, valeurs incorrectes 📓 Notebook : TP5 - INF2.ipynb
TP6 - Application web Django : gestionnaire de simulations Application Django complète avec authentification et gestion de profils utilisateurs :
Composant Contenu sim_manager/models.pyModèles de données pour les simulations sim_manager/views.pyVues : création de simulation, liste, partage, profil utilisateur templates/Templates : connexion, profil, nouvelle simulation, graphiques manage.pyPoint d'entrée Django
📓 Notebook : TP6 - INF2.ipynb
pip install jupyter numpy matplotlib pillow googlemaps django Lancer les TP (Jupyter Notebook) # Ouvrir un TP directement
jupyter notebook " TP/TP2/TP2 - INF2.ipynb" # Ou lancer Jupyter depuis la racine du projet
jupyter notebookLancer les TD (scripts Python) # Exemple TD02 - Fibonacci
python TD/TD02/TD2-1.py
# Exemple TD08 - Interface graphique
python TD/TD08/EX1.pyLancer les applications Django (TD11 / TP6) # TD11 - Gestion de courscd TD/TD11
python manage.py runserver
# TP6 - Gestionnaire de simulationscd TP/TP6/TP6-INF2
python manage.py runserverPython 3 - python.org Jupyter Notebook - environnement interactif pour les TPNumPy / Matplotlib - calcul numérique et visualisation (TD07, TD12, TP4)Tkinter - interfaces graphiques (TD08, TP5)SQLite - bases de données relationnelles (TD09)Django - framework web Python (TD11, TP6)PIL / Pillow - manipulation d'images (TD05)Ce projet est distribué sous licence MIT - voir le fichier LICENSE pour plus d'informations.