Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🐍 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.


📌 Vue d'ensemble

Travaux Dirigés (TD)

TDThème principalDossier
TD01Structures de contrôle : boucles imbriquées, affichages de motifsTD/TD01/
TD02Récursivité : suite de Fibonacci, fonctions récursivesTD/TD02/
TD03Programmation orientée objet : classes, encapsulation, getters/settersTD/TD03/
TD04Structures de données : graphes, sommets, arêtesTD/TD04/
TD05POO avancée : héritage, propriétés, manipulation d'images (PIL)TD/TD05/
TD06Structures de données : piles, files, vérification de parenthèsesTD/TD06/
TD07Fichiers et NumPy : lecture/écriture, courbes, données CSVTD/TD07/
TD08Interfaces graphiques avec TkinterTD/TD08/
TD09Bases de données relationnelles avec SQLiteTD/TD09/
TD11Application web Django : modèles, vues, formulaires, templatesTD/TD11/
TD12Calcul matriciel et visualisation avec NumPyTD/TD12/

Travaux Pratiques (TP)

TPThème principalDossier
TP1Introduction à Python : bases de la programmation, corrections fourniesTP/TP1/
TP2Récursivité : palindromes, chiffrement de César, évaluation de mots de passeTP/TP2/
TP3Géolocalisation et POO : coordonnées GPS via Google Maps APITP/TP3/
TP4Fichiers et Matplotlib : lecture de données, tracé de courbes et formesTP/TP4/
TP5Interface graphique Tkinter : calculatrice avec gestion d'erreursTP/TP5/
TP6Application web Django : authentification, profils, simulationsTP/TP6/

🗂 Détail des exercices

TD01 - Structures de contrôle

FichierContenu
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

TD02 - Récursivité

FichierContenu
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

FichierContenu
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

FichierContenu
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

TD05 - POO avancée

FichierContenu
MyNotes.pyClasse Note avec propriétés Python, héritage et manipulation d'images via PIL

TD06 - Piles et files

FichierContenu
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

TD07 - Fichiers et NumPy

FichierContenu
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

FichierContenu
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

FichierContenu
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 :

ComposantContenu
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

FichierContenu
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 :

DossierContenu
TP1/TP1.ipynbNotebook principal du TP1
Corrections TP1/ex1.py à ex6.pyCorrections officielles des 6 exercices

TP2 - Récursivité et manipulation de chaînes

ExerciceContenu
Q1Fonction récursive ispalindrome - vérification de palindromes
Q2Chiffrement 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

ExerciceContenu
EX1Classe Lieu avec récupération automatique des coordonnées GPS via Google Maps API
EX2Calcul de distances entre lieux et affichage carte

📓 Notebook : TP3 - INF2.ipynb


TP4 - Fichiers et Matplotlib

ExerciceContenu
Fichiers texteLecture de admis.txt / concours.txt, traitement de données de concours
Fichiers CSVAnalyse de math.csv / math2.csv avec statistiques descriptives
MatplotlibTracé 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 :

ComposantContenu
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


🛠 Exécution

Prérequis

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 notebook

Lancer les TD (scripts Python)

# Exemple TD02 - Fibonacci
python TD/TD02/TD2-1.py
# Exemple TD08 - Interface graphique
python TD/TD08/EX1.py

Lancer 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 runserver

🧰 Technologies utilisées

  • Python 3 - python.org
  • Jupyter Notebook - environnement interactif pour les TP
  • NumPy / 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)

📄 Licence

Ce projet est distribué sous licence MIT - voir le fichier LICENSE pour plus d'informations.


👤 Auteur


🔗 Références

About

🐍 General Python programming exercices

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages