Académique Documents
Professionnel Documents
Culture Documents
Prise en main rapide de Python. Notions utiles : listes, tuples, deques, dictionnaires,
fichiers, tableau numpy, slicing. Bibliothèques math, matplotlib, numpy. Program-
mation impérative de quelques algorithmes sur les graphes.
1 Notions utiles
1. Un programme en Python est formé d’une suite d’instructions. Une instruction
simple est contenue dans une seule ligne. Pour une instruction plus longue,
le symbole \, en fin de ligne, permet de poursuivre l’écriture de l’instruction
sur la ligne suivante. Il ne doit rien y avoir derrière ce symbole, ni espace, ni
commentaires.
6. Le mot clé import, permet d’importer (et donc d’utiliser) des bibliothèques
Python ou d’autres fichiers écrit en Python (modules).
7. Les arguments d’entrée d’une fonction en Python sont tous passés par
référence. On considère deux cas :
Objets muables : toute modification de cet objet dans la fonction est visible
en dehors de la fonction. C’est “l’effet de bord” puisque la fonction modifie
des données définies hors de sa portée locale.
Objets immuables : toute modification de cet objet dans la fonction n’est pas
visible en dehors de la fonction.
8. Un programme bien écrit en Python (comme dans tout autre langage de pro-
grammation) est composé de plusieurs modules courts (10-20 lignes) et com-
mentés, chacun avec un objectif clair.
Il est souvent utile de consulter de tutoriels pour obtenir des informations sur la
syntaxe de Python (surtout si vous ne l’avez jamais pratiqué). En voici quelqu’uns
(mais il y en beaucoup d’autres) :
Tutoriel officiel python :
https : //docs.python.org/f r/3/tutorial/index.html
Cours python :
https : //python.sdv.univ − paris − diderot.f r
http : //www.courspython.com
http : //www.normalesup.org/ doulcier/teaching/python/02 paradigmes.html
Pour une prise en main rapide des notions fondamentales de Python, lancez Pyzo
et ouvrez le fichier TP1Graphes.py.
2
2 Programmation impérative en Python
Exercice 1 Soit G le graphe orienté suivant, donné par sa matrice d’adjacence :
0 0 0 1 1
1 0 0 0 1
M= 1 0 0 0 0
0 0 1 0 0
0 0 1 0 0
Exercice 2 Soit G un graphe non orienté orienté suivant, donné par ses listes de
voisins : (1 : 2, 3, 5), (2 : 1, 5, 9), (3 : 1, 4, 5, 7), (4 : 3, 7), (5 : 1, 2, 3, 6, 8, 9), (6 :
5, 8, 9), (7 : 3, 4, 8), (8 : 5, 6, 7, 9), (9 : 2, 5, 6, 8)
1. Définissez un dictionnaire dico répresentant le graphe G. Chaque clé est as-
sociée à un sommet i. La valeur de la clé associée à i est la liste des sommets
voisins de i.
3
5. Écrivez la fonction deTLaM, d’argument un dictionnaire dico répresentant un
graphe non orienté G, renvoyant un tableau numpy M répresentant le même
graphe G.
import math
import matplotlib.pyplot as plt
import numpy as np
x=[1, 3, 4]
y=[3, 1, 5]
plt.axis([-1, 5, -1, 6])
plt.plot(x,y, color=’r’, linestyle=’-’, marker=’o’)
plt.show()
écrivez un module python qui permet de dessiner la version non orienté du graphe
de l’exercice 1.