From Département MIAp

Misashs: ProgrammationObjet

Programmation par objets

L'objectif de ce cours est de se familiariser avec la programmation par objets (Object Oriented Programming en Anglais). Il s'appuie sur le langage de programmation Python déjà utilisé dans l'initiation à la programmation (nous supposons que les notions de bases en sont acquises, n'hésitez pas à vous reporter au support de cours pour les réviser). Comme au semestre précédent, vous utiliserez le logiciel IDLE pour éditer et exécuter les scripts que vous aurez créés.

Nous nous appuyons sur plusieurs supports existants, notamment un tutoriel en Français, que l'on peut aussi trouver sur ce site. Mais il existe d'autres ressources en Français sur Python, comme ce site ou cet autre tutoriel en ligne. N'hésitez pas à parcourir ces documents.

Contenu du cours

Ce cours se compose de 13 séances de 3h, partagées entre cours théoriques et TD sur machine.

Séance 1 (08/01/2014)

Le cours est une introduction générale à la programmation par objets. Les exercices proposés sont destinés à se familiariser avec les méthodes et les constructeurs qui ont été vus en cours. Le support du cours est téléchargeable ici.

Exercice 1

Exercice 2

Exercice 3

Exercice 4

Séance 2 (15/01/2014)

Nous approfondissons les notions d'héritage et de sous classe. Si vous ne maîtrisez pas encore la notion de classe, reprenez le TD de la première séance. Un corrigé est disponible ci-dessus.

Le support du cours est téléchargeable ici.

Exercice 1

Exercice 2

Exercice 3

Séance 3 (22/01/2014)

Nous revenons sur le déroulement d'un programme à base d'objets, selon la méthode des traces d'exécution vue au premier semestre. Le support du cours est téléchargeable ici.

Exercice 1

Exercice 2

Exercice 3

Séance 4 (29/01/2014)

Cette semaine a lieu le premier devoir de contrôle continu. Il porte sur les cours et les TD des trois premières séances : classes (constructeurs, méthodes, instances), héritage (sous-classes) et traces d'exécution.

Nous nous intéresserons ensuite aux fonctions paramétrées avec des valeurs par défaut. Puis nous reviendrons sur l'utilisation des chaines de caractères.

Le support du cours est téléchargeable ici.

Exercice 1 (initialement prévu lors de la séance 3)

Exercice 2

Les chaines de caractères sont, en Python, des objets prédéfinis, comme en témoigne les méthodes permettant de les manipuler, comme split ou join.

Exercice 3

Exercice 4

Exercice 5

Séance 5 (05/02/2014)

Nous allons voir comment on peut créer des dessins grâce à la classe Turtle.

Le support de cours est téléchargeable ici.

Exercice 1

Exercice 2

Exercice 3

Exercice 4

Exercice 5

Exercice 6

Nous allons maintenant demander à l'utilisateur de spécifier des paramètres pour dessiner un rectangle.

Séance 6 (12/02/2014)

Cette séance est consacrée aux modèles d'interaction à base d'objets.

Les fonctions graphiques ont 2 finalités : le dessin et l'interaction. L'interaction est le rôle de la classe Tk, dont le chargement se fait par from Tkinter import *.

Le support de cours est téléchargeable ici.

Exercice 1

Exercice 2

Exercice 3

Exercice 4

Exercice 5

Exercice 6

Exercice 7

Séance 7 (19/02/2014)

Cette séance est de nouveau consacrée aux modèles d'interaction à base d'objets. Nous nous intéresserons plus particulièrement aux Widget Frame et Radiobutton.

Le support du cours est téléchargeable ici.

Exercice 1

Exercice 2

Exercice 3

Exercice 4

Exercice 5

Séance 8 (26/02/2014)

Cette séance est de nouveau consacrée aux modèles d'interaction à base d'objets. Nous allons revoir les éléments graphiques étudiés lors des deux dernières séances.

Exercice 1

Exercice 2

Exercice 3

Exercice 4

Exercice 5

Séance 9 (26/03/2014)

Cette séance est de nouveau consacrée aux modèles d'interaction à base d'objets. Nous allons revoir les éléments graphiques étudiés lors des trois dernières séances et en découvrir de nouveaux.

Le support du cours est téléchargeable ici.

Exercice 1

Exercice 2

Exercice 3

Exercice 4

Le code ci-dessous permet de lire un fichier CSV. Le fichier est d'abord ouvert en mode lecture (première ligne). La boucle for permet de parcourir le fichier ouvert ligne par ligne. A chaque itération de la boucle, row contient une ligne du CSV. row est une liste où chaque élément correspond à une colonne du fichier CSV. Dans l'exemple, pour chaque ligne, les quatre premières colonnes du fichier CSV sont affichées dans le shell python (print).


import csv 

cr = csv.reader(open("monFichier.csv","r"),delimiter=";")
for row in cr:
    print(row[0]+", "+row[1]+", "+row[2]+", "+row[3])

Exercice 5

Séance 10 (02/04/2014)

Cette semaine, nous allons continuer le programme de gestion de films commencé la semaine dernière. Plus précisément, nous allons créer un Frame permettant à l'utilisateur de saisir un nouveau film. Puis nous allons lui permettre de sauvegarder la nouvelle liste.

Exercice 1 : création du formulaire de saisie

Exercice 2 : ajout du nouveau film dans la liste des films

Exercice 3 : enregistrement des films dans le fichier csv

Exercice 4 : enregistrement des films dans le fichier csv (suite)

Le code ci-dessous permet d'écrire un fichier CSV. Le fichier est d'abord ouvert en mode écriture (première ligne). Puis ensuite deux lignes sont ajoutées. Chaque ligne est ajoutée sous forme d'une liste contenant les valeurs de chaque colonne de la ligne. Dans l'exemple, A1 contiendra "1", A2 contiendra "2", A3 contiendra "3", B1 contiendra "4", B2 contiendra "5" et B3 contiendra "6".


import csv 

cw = csv.writer(open(filename.name, 'w'), dialect='unix', delimiter=';')
cw.writerow([1,2,3])
cw.writerow([4,5,6])

Exercice 5 : Suppression de l'ancienne liste de films lorsqu'un nouveau fichier est chargé


for w in leNomDeLaFrame.winfo_children():
  w.destroy()

Retour au sommaire.

Récupéré sur https://www.univ-montp3.fr/miap/ens/site/pmwiki.php/?n=Misashs.ProgrammationObjet
Page mise à jour le 2014-09-03