1 IntroJupyter
1 IntroJupyter
1 IntroJupyter
Python
Pyt hon est un language de programmat ion moderne de haut niveau, logiciel libre, généralist e, mult i-
plat eformes, mult i-archit ect ure, mult i-OS (linux, windows, MacOS,..). Un programme pyt hon peut s'exécut er
sur un tout pet it raspberry Pi à 30€ (ARM), sur des smart phones, des port ables, des PC jusqu'aux super-
calculat eurs HPC avec 109 coeurs de calcul.
historique
Guido Von Rossum, un informat icien hollandais, crée en 1989 un nouveau langage de programmat ion, qu'il
décide de part ager avec la communaut é int ernat ionale sous une licence de logiciel libre. Fan de la série
t élévisée Monty Python's Flying Circus, il décide de bapt iser ce projet Pyt hon. Les Mont y Pyt hon ont eu une
grande influence sur l'informat ique puisqu'ils sont aussi à l'origine du t erme spam (nom ut iliser dans un de
leurs sket chs).
Le langage Pyt hon est devenu l'un des langages de programmat ion le plus ut ilisé au monde et est géré par la
Python Software Foundation (PSF), une associat ion sans but lucrat if fondée en 2001.
Bases d'un notebook
Not ebook
Le not ebook est une int erface web riche qui permet d'associer du code, la réponse du code et du t ext e.
Le document que l'on t ravaille est composé de cellules.
Pour chaque cellule, il faut indiquer à l'avance comment le not ebook doit l'int erprét er.
L'int erprét at ion par défaut est en code, c'est à dire que le programme int erprèt e le cont enu de la cellule
comme s'il s'agissait d'un code en pyt hon. Pour changer cela, il faut select ionner la cellule puis ut iliser le
menu déroulant de la barre d'out ils en haut .
t ext e (markdown)
Une cellule peut êt re int erprét ée comme du t ext e, selon un langage spécifique, le markdown. Il s'agit de t ext e
enrichi de quelques règles supplément aires qui permet t et une mise en page sommaire (mais efficace) du
t ext e. Nous allons en voir quelques exemples.
cellules non modifiables : cellules avec une clé que vous ne pouvez pas modifier.
cellules avec des quest ions et des t est s
ces cellules de code permet t ent de rent rer une ou plusieurs ligne de code pyt hon. Elles affichent :
Il faut effacer ces 2 lignes pour les remplacer par les lignes de code pour répondre à la quest ion posée.
Dans la cellule suivant e, vous avez un t est qui permet de valider la réponse et vérifier si celle-ci est correct e.
Si vot re réponse est correct e elle affiche Validation OK
qu'il faut remplacer par vot re réponse au format markdown (voir plus loin)
Exercice :
dans la cellule de code évalué suivant e ent rée la ligne de code suivant e (sans espace avant )
x = np.sqrt(2)/2.
√2
qui calcule la valeur approchée de 2
. Dans la cellule de t ext e suivant e expliquée pourquoi ce n'est pas la
valeur exact e. On pourra analyser le résult at de x2 = x ∗ x .
x= 0.7071067811865476
x*x= 0.5000000000000001
Validat ion OK
Attention
Il faut bien veiller à exécut er le not ebook dans l'ordre, en commençant à la première cellule.
astuce : ut iliser le menu Noyau -> Redemmarer & tout exécuter ou Kernel -> Restart & Run all pour
execut er tout le not ebook sans effet de bord
Exercice :
Ajout ez à la suit e cet t e cellule avec le bouton + deux cellules, une en code et une en markdown.
Dans la première cellule de code, écrivez ' a=1;print(a); ' (sans les guillemet s), puis execut ez.
Dans la deuxième cellule, en markdown, comment er le résult at . (1 ligne maximum)
In [ ]:
Règles de format t age du t ext e
Il est possible de met t re en page (un minimum) le t ext e dans une cellule markdown.
Ces règles sont assez sommaires, mais suffisent en général pour ce qu'on veut écrire. Pour une mise en
page plus complèt e, il faudra ut iliser des logiciels t iers (Latex, openoffice, et c...)
italique, gras :
On ut ilise le caract ère * pour met t re du t ext e en :
Saut de ligne, nouveau paragraphe : Pour commencer une nouvelle ligne, il faut ajout er deux espaces à la fin
d'une ligne.
Pour commencer un nouveau paragraphe, il faut saut er deux lignes.
Titres Pour inclure un t it re, il faut ut iliser le caract ère # en début de ligne. Tout le rest e de la ligne sera alors
format é comme un t it re (grande police, gras).
Si on ut ilise plusieurs caract ères en début de ligne, le niveau de t it re diminue :
# --> t it re principal
## --> sous-t it re
### --> sous-sous-t it re
et c...
Exercice :
Format t er le t ext e suivant suivant e en ut ilisant :
it alique
gras
saut de ligne
paragraphe
un t it re de second niveau
Un peu d’histoire Ce language a ét é créé en 2004 par John Gruber et Aaron Swart z et n’a pas évolué depuis.
Même si de nombreuses ext ensions et “ext ras” sont venues se greffer au projet originel. Le projet init ial avec
sa document at ion est sur daringfireball. Dès le départ , Gruber a écrit un script Perl pour convert ir du t ext e
markdown en XHT ML. C’est tout l’int érêt du syst ème : édit er un fichier t ext e simple avec quelques
caract ères spéciaux supplément aires, puis le faire passer dans un script qui va l’enrichir des balises requises
pour l’afficher mise en forme dans le navigat eur.
Equat ions
Il est possible d'inclure des équat ions mat hémat iques dans une cellule markdown. C'est même d'ailleurs là
un de ses int érêt s principaux.
Les équat ions sont écrit es suivant une synt axe Lat ex (simplifiée). On ut ilise pour cela le symbole dollar ($) de
la façon suivant e :
Le t ext e de l'équat ion suit aussi la synt axe lat ex. Celle-ci est t rès riche et ne peut pas êt re expliquée en
quelques minut es, vous êt es invit és à consult er des t utoriels sur int ernet . Voici quelques indicat ions de
synt axe de base :
Exemple :
La formule d'euler relie les nombres les plus import ant s des mat hémat iques :
iπ
e + 1 = 0
Attention :
Markdown n'est pas prévu pour ut iliser tout e la richesse de Lat ex. En part iculier, il est impossible (ou t rès
difficile...) d'inclure des packages permet t ant des caract ères qui ne sont pas prévus dans le lat ex de base. Il
est recommandé de simplifier au maximum les équat ions.
Exercice :
écrire dans la cellule suivant e l'équat ion des gazs parfait s pour un fluide , en définissant chacun des t ermes.
In [4]: a=1
Nous venons de définir la variable 'a', et elle a pour valeur 1.
a est donc une variable.
la valeur de a est 1, c'est une variable numérique. De plus, le nombre n'a pas de décimales : c'est un ent ier. On
peut le vérifier avec la fonct ion type :
In [5]: type(a)
Out[5]: int
Pour déinir une variable réelle à virgule flot t ant e, il faut lui met t re des décimales :
In [6]: b=1.0
type(b)
Out[6]: float
Il y a plusieurs t ypes de variables dans pyt hon ( int , float , string , ...), il y en a en plus dans les modules,
et il est même possible de créer de nouveaux t ypes de variables, mais nous ne rent rerons pas dans ce sujet
sans fin.
La principale difficult é que vous allez rencont rer est lors de l'associat ion de différent s t ypes, par exemple
dans une opérat ion mat hémat ique. Dans ce cas il faut parfois êt re vigilant .
Exercice :
Expliquez les différent s résult at s donnés par les opérat ions ci-dessous dans la dernière cellule de t ext e
In [7]: a=1;b=3;
print(a+b)
print(a//b)
4
0
In [8]: a=1.;b=3;
print(a/b)
0.3333333333333333
13
Réponse :
cellule 1
cellule 2
cellule 3
if (condition):
(action)
Exemple :
0
1
2
3
4
5
Pour imbriquer des st ruct ures les unes dans les aut res, il suffit d'ajout er un cran à l'indent at ion.
0
done
1
done
2
done
3
done
done
done
done
done
done
Pour définir une fonct ion, la synt axe respect e aussi l'indent at ion. Tout ce qui est indent é sera execut é au
sein de la fonct ion.
Exemple :
In [13]: my_func(3.,4.2)
3.0
4.2
on va multiplier les deux
Out[13]: 12.600000000000001
1.3
1.8
on va multiplier les deux
Modules
Bien que déjà t rès riche, la version de base de Pyt hon ne suffit pas à faire proprement du calcul scient ifique.
Par exemple, il n'y a pas de fonct ion de base pour calculer la racinne carrée d'un nombre.
Il serait possible de tout définir de zéro, mais ce serait fast idieux, et surtout complèt ement inut ile car il y a
déjà beaucoup de codes déjà écrit s qui font le t ravail. Ces codes sont regroupés dans des bibliothèques,
appellées en pyt hon MODULES.
Pour accéder aux fonct ions cont enues dans le module, il faut les appeler avec le nom du module suivi d'un
point :
In [16]: numpy.sqrt(2)
Out[16]: 1.4142135623730951
Il est parfois fast idieux de devoir t aper le nom de tout le module à chaque ut ilisat ion. Il est possible alors de
lui donner un nom plus court :
Pour connaît re la list e des fonct ions disponibles dans un module, on peut ut iliser dir :
dir(np)
In [18]: A=np.array([1,2,3,4,5,6,7,8]);
#B = # écrire ici la définition de B
#print(B)
Remarques: Dans les exercices de programmat ion, les commandes d'import at ion des modules nécessaires
seront déjà écrit es dans la première cellule.
Numpy et matplotlib
Le format de base des t ableaux dans pyt hon est les list es. Pour cert aines raisons, il n'est pas adapt é au
calcul scient ifique.
[1, 2, 3, 4, 5, 1, 1, 1, 1, 1]
Pour cela, il est plus prat ique d'ut iliser la bibliot hèque numpy et le format de base qui lui est associé : les
arrays
[2 3 4 5 6]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[0. 0.07142857 0.14285714 0.21428571 0.28571429 0.35714286
0.42857143 0.5 0.57142857 0.64285714 0.71428571 0.78571429
0.85714286 0.92857143]
[-100. -84.61538462 -69.23076923 -53.84615385 -38.46153846
-23.07692308 -7.69230769 7.69230769 23.07692308 38.46153846
53.84615385 69.23076923 84.61538462 100. ]
Attention !
In [22]: B[3]
Out[22]: 0.21428571428571427
Il est possible de représent er graphiquement un t ableau (array) en fonct ion d'un aut re de même t aille grâce à
mat plot lib. Pour cela, on ut ilise la fonct ion plt.plot(A,B) de mat plot lib
AT TENTION ! Un graphe qui n'a pas de titre aux axes, pas de légende, pas d'explication, n'est pas un bon
graphe !
S'il est admissible de faire un graphe sans rien lorsqu'on recherche la bonne visualisat ion, il faut à la fin
PENSER à mettre un titre, à nommer les axes et à mettre une légende !!!
L'ensemble des modificat ions possibles pour un graphe est assez ét endu, voici un exemple sommaire mais
déjà suffisant .
/usr/local/lib/python3.8/dist-packages/IPython/core/display.py:717: UserWa
rning: Consider using IPython.display.IFrame instead
warnings.warn("Consider using IPython.display.IFrame instead")
Out[27]:
You are reading an old version of the documentation (v2.0.2). For the lates
https://matplotlib.org/stable/
Click on any image to see f ull size image and source code
De ps
Gallery Trav
FIN