1.3. Utilisation de Python

Il existe plusieurs façons d’executer un code Python. On peut lancer un interpréteur dans une console, ce qui permet d’excuter les intructions ligne par ligne. On peut aussi écrire le script dans un ficher que l’on execute. Enfin, il existe des solutions intermédiaire avec lesquels on utilise à la foi un fichier et une console.

1.3.1. Console Python

La console Python se lance simplement à partir du programme python.

La console Python peut être utilisée comme une simple calculatrice :

>>> 1+13
14

On peut aussi y entrer des structures plus complexes directement :

>>> l = ['alpha', 'beta']
>>> for elm in l:
...     print(elm)
...
alpha
beta

1.3.2. Console IPython

La console IPython est beaucoup plus pratique à utiliser que la console Python. Elle remplace de fait la console standard. La page <https://ipython.org/ipython-doc/2/interactive/tutorial.html> indique les principales fonctions de IPython. Notons :

  • Une console qui permet d’accéder au commandes précédentes (en utilisant la flêche du haut). Il est possible de limiter la recherche en commençant à taper les premiers caractères de la lignes que l’on veut retrouver

  • La complétion automatique à l’aide de la touche de tabulation.

    In [1]: une_variable_dont_le_nom_est_long = 3.2
    

    On pourra ensuite simplement taper quelques lettres (par exemple une_va) puis la touche de tabulation. Si plusieurs choix sont possibles, ils s’afficheront. Ceci est valable pour les noms de variables (donc aussi pour les fonctions), mais aussi les attributs ou methodes des objets.

  • Les commandes magiques. Sera utilisé particulièrement la commande %run qui permet d’executer un fichier.

1.3.3. Utilisation d’un fichier

Dès que l’on veut executer plus que quelques instructions, il est préférable d’utiliser un fichier. Les fichiers contenant des instructions python ont comme extension .py. Ecrivons à l’aide d’un éditeur de texte standard les quelques instructions suivantes :

nom = 'Pierre'
print('Bonjour', nom, '!')

Ce fichier peut être executé directement à partir d’un shell à l’aide de l’instruction python nom_de_fichier.py. Normalement, ce programme devrait affichier :

Bonjour Pierre !

1.3.4. Spyder

Spyder offre un environnement de travail pour Python qui se veut un clone de celui de Matlab. Il est donc adapté à l’utilisation pour les scientifiques. En ouvrant ce programme, on d’un côté un éditeur de texte et de l’autre un fenêtre d’aide et une console IPython. Nous recommandons l’utilisation de cet environnement.

Exemple : lancer spyder et ouvrir le fichier créé précédement. Executer le contenu de ce fichier (à partir des menus ou directement avec la touche F5).

1.3.5. Jupyter Notebook

Le jupyter notebook offre un environnement dans lequel on peut afficher à la foi les instructions (regroupés dans dans des cellules) et les résultats de ces instructions au fur et a mesure de leur exécutions. Il est par exemple possible d’afficher des graphiques.

Jupyter se présente sous la forme d’un serveur http auquel on accède avec un navigateur web. Sous linux, lancer simplement la notebook à partir d’un terminal à l’aide de la commande

jupyter notebook

Normalement, le navigateur par défaut devrait s’ouvrir.

Sous windows, ????

1.3.6. Exemple

Voici un premier exemple de code Python. L’objectif de ce code est de calculer la valeur de \(e^x\). Nous allons utiliser le développement limité suivant:

\[e^x = \sum_{n=0}^{\infty} \frac{x^n}{n!}\]

Pour cela, nous allons calculer la somme jusqu’à une valeur \(n_\mathrm{max}\) de \(n\) telle que \(x^n/n!<\epsilon\). La variable \(\epsilon\) determinera la précision du calcul (plus \(\epsilon\) est petit, meilleure est la précision).

Le code Python permettant de faire ce calcul est le suivant :

x = 3.14
epsilon = 1E-6
resultat = 0
n = 1
terme = 1 # Valeur initiale de terme de la boucle
while terme>epsilon :
    resultat = resultat + terme
    terme  = terme * x/n
    n = n + 1
print(resultat)

Ce code ne devrait pas poser de problème au lecteur ayant déjà eu des cours de programmation. Une particularité du langage Python est présente : dans la boucle while, le bloc d’instruction qui est répété est determiné par l’indentation (espaces au début de chaque ligne). Python est donc différent de la pluspart des langages qui utilisent une structure du type begin-end ou bien des accolades pour determiner le bloc d’instruction qui est répété. En python un bloc d’instruction est repéré par les : et un ensemble de lignes indenté identiquement.

Pour effectuer l’indentation d’une ligne ou d’un bloc de ligne, le plus simple est d’utiliser la touche de tabulation (et shift + tabulation) pour suprimer l’indentation.

Exercice

Essayez d’executer ce code en utilisant les différentes méthodes proposées ci dessus :

  • En recopiant le script dans un fichier exponentielle.py et en l’exécutant avec la commande python exponentielle.py
  • En utilisant ipython
  • En utilisant spyder
  • En utilisant un notebook jupyter.

Pour créer une fonction, on utilise l’instruction def, ce qui donne :

def exp(x, epsilon=1e-6): # epsilon vaut par défaut 1e-6
    """ Renvoie e a la puissance x """
    resultat = 0
    n = 1
    terme = 1 # Valeur initiale du terme de la boucle
    while terme>epsilon :
        resultat = resultat + terme
        terme = terme * x/n
        n = n + 1
    return resultat

Exercice

Depuis un éditeur (par exemple spyder), modifiez le fichier pour en faire une fonction. Executez le fichier et la fonction.