Vous êtes sur la page 1sur 6

Introduction

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

2.1 Comment utiliser python ?


Il existe plusieurs façons d’utiliser python, j’évoque brièvement ici les principales :

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

Python 3.6.6 (default, Aug 12 2018, 20:37:26)


[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Il est alors possible d’écrire du code python directement dans la console, et d’exécuter ce code
en appuyant sur la touche <entrée>.

2.1.2 Ecrire et lancer un script


Afin d’écrire des programmes un peu plus volumineux, qui soient modifiables et réutilisables, il
est préférable d’écrire un script dans un fichier (qui aura généralement comme suffixe .py), et de
lancer le script à l’aide de python.

Dans ce cas, il conviendra d’utiliser un éditeur de texte supportant la coloration syntaxique de


code python (par exemple gedit sous Linux).

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

2.1.3 Environnements interactifs


Enfin, il existe des environnements interactifs plus ou moins évolués permettant d’utiliser python
au sein d’un interpréteur plus puissant que le toplevel.
L’un des environnements les plus aboutis est Jupyter, et c’est celui que nous allons utiliser
pour réaliser les différents exercices tout au long de ce cours. Les instructions pour l’installer et
l’utiliser se trouvent dans la suite du cours.
Nous allons donc dans la suite de cette introduction présenter Jupyter, mais auparavant intro-
duisons quelques mots sur le fonctionnement des modules en python.

3 Un interprète et des modules


Python est constitué d’un interprète, dont le rôle est d’exécuter les différentes instructions que
nous lui fournissons. Ce qui nous permet par exemple d’effectuer des calculs simples :

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 :

In [2]: import math

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.

3.1.2 Contenu d’un module


Pour aller plus loin, il faudrait connaître le contenu du module afin de savoir quelles sont les
fonctions et classes qui y sont définies et comment les utiliser.
Pour cela, il est possible soit de consulter la documentation du module en question (le plus
souvent disponible en ligne), soit – une fois le module importé – d’interroger python avec la
fonction help.

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)

Help on built-in function log in module math:

log(...)
log(x[, base])

Return the logarithm of x to the given base.


If the base not specified, returns the natural logarithm (base e) of x.

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.

3.2 Installation de modules externes


Pour installer un module qui n’est pas dans la bibliothèque standard, il existe différents moyen de
procéder (selon si le module se trouve ou non dans les dépôts de votre distribution, s’il existe ou
pas de package d’installation, etc.).

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:

pip install --user jupyter

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.

Fonctionnement de pip Quelques mots sur le fonctionnement interne de pip.

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

Aperçu de l’interface de Jupyter au démarrage

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

4.2 Usage d’un notebook


Pour l’exemple, vous pouvez ouvrir le notebook correspondant à cette partie du cours (Intro-
duction.ipynb) en cliquant dessus.
Un notebook jupyter est constitué de "cellules" (cell) éditables et exécutables , de deux 2 types
différents:

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.

Vous aimerez peut-être aussi