1.4. Exemple de code

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\) déterminera 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 déterminé 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 déterminer 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 supprimer l’indentation.

Exercice

Essayez d’exécuter 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. Exécutez le fichier et la fonction.