Introduction Methodologie Programmation
Introduction Methodologie Programmation
Introduction Methodologie Programmation
Ce cours est pour le moment en cours de rédaction, et sert de transition pour l’ancien cours
vers la version actuelle de python (la version 2, utilisée jusqu’ici, arrive en fin de vie et peut être
considérée obsolète). Nous allons donc utiliser des outils plus modernes, mais les fondements
de la programmation, eux, restent les mêmes.
En cas de souci de compréhension ou autre, n’hésitez pas à vous manifester sur le forum afin
d’obtenir de l’aide.
1 Objectifs
Ce cours vise à enseigner les fondements de la programmation, et à ce titre a donc une voca-
tion généraliste. Néanmoins, il nous a paru nécessaire d’utiliser un langage unique comme sup-
port d’enseignement. Le langage Python nous semble un choix pertinent, en cela qu’il couvre
l’ensemble des notions abordées dans le cours, et que son fonctionnement est suffisamment sim-
ple pour masquer la plupart des spécificités introduites par l’usage de tel ou tel langage de pro-
grammation.
Par ailleurs, le langage python vous sera utile pour la suite de la licence, le second objectif de
ce cours est donc d’acquérir une bonne maîtrise du langage.
Le support de cours sera constitué de polycopies au format pdf, mais sera également disponible
sous forme interactive au format ipynb (que nous présentons plus loin), vous permettant ainsi
d’expérimenter avec les codes qui vous sont présentés, et en même temps de vous familiariser
avec le support d’exercices.
2 Prise en main
Cette première section présente le logiciel de programmation que nous allons utiliser pour la suite
du cours. Une fois installé sur votre ordinateur, vous allez pouvoir commencer à écrire et exécuter
vos premiers programmes.
Dans cette section, nous présentons différents environnements de programmation avec py-
thon, et introduisons les concepts de base pour la compréhension de leur fonctionnement.
Avant toute chose, assurez vous que Python 3 est bien installé sur votre machine. Si ce n’est
pas le cas, installez le dès maintenant (apt install python3 sous Ubuntu).
1
2.1.1 Le toplevel
On peut utiliser python au sein d’un terminal interactif (que nous appellerons le toplevel), ce qui est
très pratique pour écrire et tester de courts scripts. Pour cela, lancez un terminal de commandes
(le shell), et invoquez python (ou python3 suivant les installations).
Vous verrez alors s’afficher le prompt de python, ressemblant à quelque chose comme ceci (en
fonction de votre système et version installée) :
On peut ensuite lancer son script, typiquement avec la commande python3 mon_script.py, ou
en rendant le fichier de script exécutable (chmod +x mon_script.py dans le shell) et en ajoutant
au début du fichier un shebang indiquant de quelle façon le script doit être invoqué par le système
(nous verrons cela dans la suite du cours).
In [1]: 1 + 2
Out[1]: 3
Mais ce qui fait véritablement la puissance du langage, ce sont les différents modules qu’il est
possible d’utiliser.
2
3.1 Modules et bibliothèque standard
Un module contient essentiellement des fonctions, et peut donc être vu comme une bibliothèque
de fonctions, qu’il est possible d’importer au besoin. Par exemple :
math.log(1)
Out[2]: 0.0
3.1.1 Imports
Si l’on supprime la ligne d’import, notre usage de la fonction log va échouer et envoyer un mes-
sage d’erreur indiquant la nature du problème, python ne reconnaissant pas le module math.
>>> math.log(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined
En revanche, dès le moment ou la fonction est importée, elle devient utilisable et produit bien
le résultat attendu.
help(math)
Il est aussi possible de demander de l’aide sur une fonction spécifique, par exemple nous
pouvons consulter la documentation de la fonction log vue précédemment:
In [3]: help(math.log)
log(...)
log(x[, base])
3
3.1.3 Bibliothèque standard
Python est initialement fourni avec un certain nombre de modules, qui constituent ce que l’on
nomme la bibliothèque standard (modules qui sont définis avec le langage) et dont la documen-
tation est consultable sur le site officiel.
Au besoin, il est possible d’installer des modules supplémentaires, et même le cas échéant de
créer ses propres modules, comme nous le verrons dans la suite du cours.
pip Généralement, le moyen le plus simple pour installer des modules supplémentaires est de
passer par l’outil d’installation de packages pip. Pour installer un nouveau package contenant le
module de votre choix, vous allez lancer pip depuis le terminal Linux.
Attention, il peut être nécessaire d’installer pip au préalable, assurez vous bien que la com-
mande fonctionne correctement avant de lancer d’autres installations. Suivant les installations,
la version de pip fournie avec python 3 est susceptible de se nommer pip3.
Par exemple, pour installer Jupyter (dont nous aurons besoin pour la suite du cours), lancez:
L’option - -user sert à installer le logiciel dans l’espace utilisateur (afin d’éviter tout con-
flit avec votre installation). Il existe bien sûr d’autres options, que vous pouvez consulter en
lançant pip -h ou pip install -h pour les options spécifiques à l’installation.
Le terminal va alors afficher les différentes actions effectuées par pip, et une fois l’exécution
terminée, si aucune erreur n’a été affichée, le composant est installé et prêt à l’emploi.
Vous pouvez vérifier que l’installation a été correctement faite en entrant dans le terminal
Linux:
jupyter notebook
Ceci devrait normalement lancer un notebook et ouvrir un navigateur. Vous pourrez alors utili-
ser les fichiers .ipynb du cours. En cas de souci, vous pouvez poster un message sur le forum.
• Le logiciel va chercher sur l’index des packages de python (PyPI) le package que vous sou-
haitez installer. Cet index recense la plupart des packages python existants.
• Ensuite, pip va analyser les dépendances et télécharger ce dont il a besoin pour installer le
package en question.
• Enfin, l’outil lance les différentes installations nécessaires, et une fois l’installation terminée
affiche les différents packages qui ont été installés.
4
4 L’environnement Jupyter
Jupyter propose un environnement particulièrement pratique d’utilisation pour travailler avec
python de façon interactive: le notebook.
Il est possible, mais non obligatoire, de suivre le cours directement sur les notebook qui seront
mis en ligne. La rédaction des exercices sur un notebook est quant à elle fortement recomman-
dée.
4.1 Dashboard
Une fois Jupyter lancé avec la commande jupyter notebook, vous devriez apercevoir dans votre
terminal différents messages de lancement, ainsi qu’une ligne indiquant l’URL à utiliser dans votre
navigateur internet (généralement inutile vu que votre navigateur devrait en principe s’ouvrir
automatiquement).
Votre navigateur affiche alors un tableau de bord (dashboard), ressemblant à ceci:
Les fichiers affichés correspondent à votre position dans l’arborescence du fichier dans le termi-
nal exécutant Jupyter. Veuillez donc lancer Jupyter à partir du répertoire contenant les notebook
souhaités.
Il est possible de se servir de cette interface pour ouvrir et éditer un fichier source en langage
python (.py) voire même dans d’autres langages, mais l’intérêt principal est de pouvoir ouvrir et
exécuter un notebook python (.ipynb).
1. Les cellules code, qui permettent d’écrire du code python. A la demande, l’exécution d’une
cellule de ce type affiche les résultats dans le notebook
2. Les cellules markdown, qui permettent de rédiger du texte avec une présentation minimale.
L’exécution de ces cellules va simplement afficher le texte mis en forme.
5
Vue d’un notebook et son interface
L’exécution du code est prise en charge par un noyau d’exécution (kernel) qui va exécuter le
code en arrière plan. Il est possible de sélectionner la cellule que l’on souhaite exécuter, sans quoi
l’exécution des cellules se fait dans l’ordre.
Les principaux types d’actions sont disponibles sous la formes de boutons, sinon vous pouvez
consulter les menus du notebook.
A tout moment, vous pouvez modifier le contenu d’une cellule et relancer l’exécution, ce qui
vous permettra d’expérimenter directement les différents codes proposés dans le cours, et par-
tant de vous approprier les diverses notions que nous étudierons.
Il faut comprendre que l’ordre d’exécution des cellules est important, vu qu’elles sont prises
en charge par le même kernel. La numérotation des cellules de code exécutées vous permettra
de suivre l’ordre d’exécution. Si nécessaire, il est toujours possible de redémarrer le kernel et
recommencer.