None TP0-A-Notebook
In [1]:
from IPython.core.display import HTML
css_file = './custom.css'
HTML(open(css_file, "r").read())
Out[1]:

M62_TP0 Introduction aux Notebooks Jupyter.

Jupyter est une application Web qui regroupe intimement deux fonctionnalités très différentes :

  • Un outil qui permet de créer des documents multimédia intégrant du texte, des formules mathématiques, des graphiques, des images, voire des animations et des vidéos.
  • Une interface qui permet d'exécuter du code informatique. Pour cela Jupyter s'appuie sur des programmes indépendants capablent d'interpréter le langage dans lequel est écrit ce code. Dans la terminologie de Jupyter ces interpréteurs sont appelés des noyaux (kernel en anglais). Nous utiliserons le noyau pour le langage Python 3.

Les documents Jupyter sont appelés des notebooks. Un fichier notebook est reconnaissable par son extension $\texttt{.ipynb}$. Le document que vous lisez actuellement est un notebook.

Pour commencer, dans un terminal, lancer la commande jupyter notebook & (ou anaconda-navigator &). Cela ouvrira automatiquement cela va ouvrir un nouvel onglet dans votre navigateur Internet appelé Home. Cet onglet principal représente l’arborescence des fichiers.

Créons un nouveau notebook en cliquant sur New puis Python 3:

Cela va normalement encore ouvrir un nouvel onglet dans lequel se trouvent, de haut en bas:

  • le nom de votre notebook (que vous pouvez modifier en cliquant dessus),
  • une barre de menu,
  • une barre d’outils
  • une cellule vide. Essayez d’écrire dans cette cellule votre première ligne de code et cliquez ensuite sur Run:
In [1]:
print("Hello world!")
Hello world!

Essayer les notebook en ligne

On peut écrire ses notebook en ligne par exemple à l'adresse https://colab.research.google.com

Mais le plus simple est d'installer jupyter sur sa machine.

Installation simple

La façon la plus simple d’installer Python et Jupyter est d’installer Anaconda. Les procédures d’installations détaillées selon chaque système d’exploitation sont décrites à l’adresse : https://docs.anaconda.com/anaconda/install/. Les procédures suivantes sont un résumé rapide de la procédure d’installation.

  • Installation sous Windows.
    1. Télécharger Anaconda 5.2 (ou plus récent) pour Python 3.6 (ou plus récent) à l’adresse : https://www.anaconda.com/download/#windows ;
    2. Double cliquer sur le fichier téléchargé pour lancer l’installation d’Anaconda, puis suivre la procédure d’installation (il n’est pas nécessaire d’installer VS Code).
    3. Une fois l’installation terminée, lancer Anaconda Navigator à partir du menu démarrer.
  • Installation sous macOS.
    1. Télécharger Anaconda 5.2 (ou plus récent) pour Python 3.6 (ou plus récent) à l’adresse : https://www.anaconda.com/download/#macos ;
    2. Double cliquer sur le fichier téléchargé pour lancer l’installation d’Anaconda, puis suivre la procédure d’installation (il n’est pas nécessaire d’installer VS Code).
    3. Une fois l’installation terminée, lancer Anaconda Navigator à partir de la liste des applications.
  • Installation sous Linux.
    1. Télécharger Anaconda 5.2 (ou plus récent) pour Python 3.6 (ou plus récent) à l’adresse : https://www.anaconda.com/download/#linux ;
    2. Exécuter le fichier téléchargé avec bash puis suivre la procédure d’installation (il n’est pas nécessaire d’installer VS Code).
    3. Une fois l’installation terminée, taper anaconda-navigator dans un nouveau terminal pour lancer Anaconda Navigator.

Sous Windows, il existe aussi WinPython https://winpython.github.io/ qui ne nécéssite pas d'installation. Voici les instructions: http://bluegalaxy.info/codewalk/2018/07/28/python-install-winpython-jupyter-notebook/

Exporter un notebook

Lorsque vous avez terminé la rédaction de votre document, vous pouvez le télécharger sur l'ordinateur local dans le format qui vous convient. Choisir pour cela File/Download as...

Pour mettre vos notebooks en ligne : nbviewer

Manipulation du notebook

Le notebook est constitué d'une succession de cellules comportant

  • soit du texte en Markdown comme celle-ici,
  • soit du code comme dans la cellule suivante (Python pour nous):
In [2]:
x=range(3)

Un notebook est interacitf: on peut modifier ou ajouter des cellules et executer une cellule en la selectionnant pui en cliquant sur le bouron Run cell ou en appuyant sur CTRL+Enter:

Le résultat sera affiché directement dans le notebook.
On peut utiliser le notebook comme une simple calculatrice. Par exemple, si on suppose qu'en moyenne ils sont nés 256 enfants par minute en 2016, le code ci-dessous calcule combien d'enfants sont nés en un jour:

In [4]:
# I'm a code cell, click me, then run me!
256 * 60 * 24 # Enfants × minutes × heures
Out[4]:
368640

Un liseré repère la cellule actuellement selectionnée.
Les cellules peuvent être dans le mode commande ou le mode édition:

  • mode commande : permet de se déplacer d'une cellule à l'autre et d'exécuter les cellules
  • mode édition : permet de modifier le contenu d'une cellule.

Mode commande (presser la touche [Esc])

Pour entrer dans le mode commande de la cellule sélectionnée, il suffit de presser la touche [Esc]. Quand vous êtes dans le mode commande, vous pouvez ajouter ou supprimer des cellules mais vous ne pouvez pas saisir de texte dans une cellule.
Voici les raccourcis principaux disponibles en mode commande :

  • [ESC] : Passe dans le mode commande
  • M : Transforme la cellule en une cellule de type Markdown.
  • Y : Transforme la cellule en une cellule de type Code.
  • [Ctrl-Enter] : Exécute la cellule.
  • [Shift-Enter] : Exécute la cellule et sélectionne la cellule suivante. L'appui répété de cette touche permet ainsi d'exécuter pas à pas toutes les cellules du notebook.
  • [Alt-Enter] : Exécute la cellule et insére une nouvelle cellule juste en dessous.
  • [Ctrl-S] ou S : Save and Checkpoint
  • I,I : Interrompt l'exécution du code.
  • 0,0 : Redémarre l'interpréteur. Il se retrouve alors dans son état initial.
  • A et B : Insèrent une nouvelle cellule, respectivement au-dessus ou au-dessous de la cellule sélectionnée.
  • X et C : Respectivement coupe ou copie la cellule sélectionnée.
  • V et [Shift-V] : Colle la cellule copiée/coupée respectivement au-dessus ou au-dessous.
  • D,D : Supprime la cellule sélectionnée.
  • Z : Annule la dernière suppression de cellule.
  • [Alt-Down] ou [Alt-Up] : Deplace la cellule selectionnée respectivement au-dessus ou en-dessous
  • [Shift-Down] ou [Shift-Up] : selectionne la cellule respectivement au-dessus ou en-dessous
  • [Shift-J] ou [Shift-K] : étende la selection aux cellules respectivement au-dessus ou en-dessous
  • [Shift-M] : merge selected cells, or current cell with cell below if only one cell is selected
  • [Shift-space] ou [space] : scroll notebook up or down
  • F : find and replace
  • L : toggle line numbers
  • [Shift-L] : toggles line numbers in all cells, and persist the setting
  • O : toggle output of selected cells
  • [Shift-O] : toggle output scrolling of selected cells
  • H : Affiche la liste de tous les raccourcis clavier.
  • [Shift-A] : Insert a heading cell above the selected cell
  • [Shift-B] : Insert a heading cell below the selected cell's section

Mode édition (presser la touche [Enter])

Pour entrer dans le mode édition de la cellule sélectionnée, il suffit de presser la touche [Enter] ou de double-cliquer à l'intérieur de la cellule. Quand une cellule est en édition vous pouvez saisir du texte comme dans un éditeur classique.
Lorsque le curseur est en début de ligne ou lorsque vous avez sélectionné du texte, l'appui sur la touche [Tab] (respectivement [Shift-TAB]) indente (respectivement désindente) les lignes correspondantes.
Voici d'autres raccourcis clavier :

  • [Ctrl-A] : Sélectionne tout le texte de la cellule.
  • [Ctrl-Z] : Annule les dernières saisies de texte.
  • [Ctrl-Enter] : Exécute la cellule.
  • [Shift-Enter] : Exécute la cellule et sélectionne la cellule suivante. L'appui répété de cette touche permet ainsi d'exécuter pas à pas toutes les cellules du notebook.
  • [Alt-Enter] : Exécute la cellule et insére une nouvelle cellule juste en dessous.
  • [ESC] : Passe dans le mode commande