Cet exercice a pour objectif de vous faire rapidement explorer les fonctionnalités de base de l'interpréteur interactif jupyter en mode Notebook.
Mais tout d'abord félicitations d'être déjà parvenu à ouvrir ce notebook !
Un notebook jupyter consiste en cellules individuelles pouvant contenir du code Python, du texte (avec formatage Markdown, HTML et LaTeX) ou des graphiques. Commençons par les cellules de type Code.
1) Placez le curseur dans la 1ère cellule Entrée []: ci-dessous puis frappez <enter>
. Que se passe-t-il ? Rien d'autre que l'insertion d'un saut de ligne... C'est normal, car dans une cellule de type "Code" (c'est-à-dire préfixée par Entrée[ ]:) on est par défaut en mode édition de code Python !
Pour exécuter le code Python d'une cellule, il faut en effet frapper <maj-enter>
(ou cliquer sur le bouton , ou encore utiliser le menu Cell>Run and Select Below...
). Essayez !
15 + 24
'Hello tout le monde !'
Une ligne Out[ ]: devrait être apparue en dessous de la 1ère expression, affichant le résultat de celle-ci ! Le curseur est alors automatiquement passé dans la cellule d'en-dessous que vous pouvez exécuter à son tour.
Notez qu'il est aussi possible de frapper <ctrl-enter>
(identique à Cell>Run
). Dans ce cas, le curseur reste dans la cellule après l'exécution du code.
2) Exécutez maintenant le code de la cellule ci-dessous.
a, b = 10, 6 # affectation simultanée de 2 variables
print('La somme de ces 2 nombres vaut :', a + b)
Remarquez que l'exécution du code ci-dessus n'a retourné aucune valeur. Il n'y a pas de prompt Out[ ].
3) Peut-on modifier le code d'une cellule puis le ré-exécuter ? Bien sûr !
Expérimentez cela dans la cellule ci-dessus en modifiant la valeur des variables a et b, puis frappez à nouveau <maj-enter>
4) Comment puis-je créer mes propres cellules de code ? Tout simplement de la façon suivante :
Insert>Insert Cell Below
Insert>Insert Cell Above
)Exercez-vous en créant, juste en-dessous de la présente cellule, une nouvelle cellule.
Insérez-y le code :
print('Ouaouh... c'est ma première cellule !')
puis exécutez le code de cette cellule.
print("Ouaouh... c'est ma première cellule !")
5) Nous vous avons tendu un piège : si vous avez repris cette instruction print
telle quelle, son exécution a dû générer une erreur, car l'apostrophe de la partie de chaîne ...c'est... n'était pas préfixé de "\". Peu importe, corrigez votre code et réexécutez-le, ce qui illustre bien l'intérêt de jupyter Notebook !
6) Pour détruire une cellule, sélectionnez-la puis cliquez sur le bouton (ou faites Edit>Delete Cell
). Exercez-vous en détruisant la cellule ci-dessous. Puis rétablissez-la avec Edit>Undo Delete Cell
Une cellule à jeter !!!
Notez qu'il existe également : le bouton (correspondant au menu Edit>Copy Cell
) ainsi que le bouton (et divers articles de menus Edit>Paste Cell...
)
7) Vous trouvez ci-dessous 2 cellules de type texte (on verra dans un instant comment on peut créer de telles cellules).
Commencez par spliter la première cellule : pour cela double-cliquez d'abord dans la cellule pour l'éditer, puis placez le curseur entre les 2 lignes, et faites finalement Edit>Split Cell
Ceci est la troisième cellule de texte, blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla.
Ceci est la seconde cellule de texte, blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla.
Ceci est la première cellule de texte, blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla.
8) Vous devriez maintenant avoir ci-dessus 3 cellules de texte. Déplacez-les de façon à les mettre dans l'ordre, en utilisant les boutons et ou menus Edit>Move ...
)
9) Puis expérimentez le fusionnement de cellules en fusionnant ces 3 cellules de texte avec Edit>Merge Cell Above
ou Edit>Merge Cell Below
Il existe 2 types de cellules de texte, selon le choix effectué à l'aide du menu déroulant de droite ou avec Cell>Cell Type>...
:
**Remarque** : le type Heading n'est plus supporté.
10) Créez juste ci-dessous une cellule de type Raw NBConvert (texte). Pour cela, créez une cellule par le procédé standard (elle sera donc de type Code), puis changez son type à l'aide du menu déroulant. Constatez que la cellule reste toujours en mode édition.
11) S'agissant des cellules de texte au format Markdown, cela suppose quelques notions relatives au langage de balisage Markdown : Rédigez en Markdown !.
Pour vous donner une idée de la simplicité du balisage Markdown, vous pouvez double-cliquer dans les cellules de texte du présent notebook qui sont toutes au format Markdown.
Et comme vous le voyez ci-dessous, il est donc même possible d'introduire du code LaTeX (placé entre deux caractères $
) dans une cellule de type Markdown :
Pour plus d'informations : un Notebook assez complet sur les cellules au format Markdown
13) Lorsque vous avez terminé de travailler dans un notebook, n'oubliez pas de le sauvegarder avec le bouton (ou le menu File>Save and Checkpoint
). Sachez que jupyter effectue par défaut des sauvegardes à intervalle régulier, et que File>Revert to Checkpoint
permet de revenir à un état enregistré.
14) _Si vous désirez imprimer un notebook, n'utilisez pas la commande d'impression de votre navigateur web depuis la fenêtre de notebook, le résultat sera très mauvais. La bonne méthode consiste à faire au préalable depuis le menu File>Print Preview
. Mais il est peut être préférable de télécharger une version numérique du notebook sur l'ordinateur local dans le format qui vous convient comme le HTML pour obtenir une page web statique avec le menu File>Download as
...
Si vous exécutez la fonction magique %pylab inline
, les packages Numpy et Matplotlib sont importés et il sera possible de dessiner des graphiques de façon "inline" (intégrés au notebook).
%pylab inline
L'exemple de code suivant sera alors exécutable.
# Fait appel à numpy (linspace et pi)
x = linspace(0, 3*pi, 500)
# Fait appel à matplotlib (plot et title)
plot(x, sin(x))
title('Graphique sin(x)')
from IPython.display import Image
Image("http://api.si.lycee.ecmorlaix.fr/APprentissagePythonJupyter/img/jupyter.png")
from IPython.display import YouTubeVideo
YouTubeVideo('Rc4JQWowG5I')
from IPython.display import HTML
HTML('<IFrame src="https://fr.wikipedia.org/wiki/Jupyter" width=700 height=350>')
Mentionnons quelques autres fonctionnalités utiles :
<Tab>
(respectivement <Shift-TAB>
) indente (respectivement désindente) les lignes correspondantes.<ESC>
passe en mode commande, les bordures sont alors bleues. Notez bien que dans ce mode, certaines touches du clavier sont associées à des actions sur le notebook. Tenter de saisir du texte dans ce mode peut donc produire des effets inattendus.[open the command palette]
affiche une fenêtre qui liste l'ensemble des commandes.[New Notebook]
dans la première fenêtre "jupyter Dashboard", ou faites File>New
depuis n'importe quelle fenêtre de notebook. N'oubliez ensuite pas de donner un nom de fichier à votre notebook en cliquant dans le champ "Untitled" au haut de la fenêtre du nouveau notebookCell>All Output>Clear
Kernel>Interrupt
). Si ça ne fonctionne vraiment pas, il faudra se résoudre à tuer le serveur web avec <ctrl-C>
Help>Keyboard Shortcuts
vous trouverez la liste des nombreux raccourcis clavier améliorant grandement l'efficacité d'utilisation de jupyter Notebook !Help>Notebook Help
vous accéderez à la documentation complète de jupiter Notebook.
Ce document adapté d'un travail de Jean-Daniel.Bonjour@epfl.ch est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International.
Pour toute question : eric.madec@ecmorlaix.fr