Syntaxe du langage Python

Import des bibliothèques

Afin d’utiliser les bibliothèques mathématiques de python, il est nécessaire de les importer (de manière équivalente à la primitive include en langage C). La manière recommandée d’importer une bibliothèque comme numpy est la suivante :

import numpy as np;

Ici, np est un alias pour le nom de la bibliothèque numpy. Après l’avoir importée, il devient possible d’accéder aux fonctions définies à l’intérieur de cette bibliothèque en les préfixant par le nom de la bibliothèque ou de son alias :

np.sqrt(5);
>>  2.2360679774997898

Écriture de fonctions

Pour définir une fonction en python, il faut utiliser le mot-clé def de la manière suivante :

def func(x,y):
	""" Example of function adding x and y"""
	return(x+y)

Quelques remarques :

  • En python, il n’y a pas de délimiteurs comme en langage C. Le corps de la fonction est donc délimité par le mot-clé def au début et la dernière ligne de code à la fin.
  • Les indentations du code par des tabulations (le caractère \t en C) sont obligatoires pour que le code soit accepté par l’interpréteur.
  • La deuxième ligne correspond à la documentation de la fonction, et apparaîtra lors de l’appel à la commande help(func).

Instructions conditionnelles / Boucles

Les instructions conditionnelles et les boucles ont une syntaxe ressemblant fortement à l’écriture de fonctions. Ici aussi, l’indentation est importante :

if cond:
	instr
if cond_1:
	instr_1
elif cond_2:
	instr_2
else:
	instr_n
for x in array:
	instr
while cond:
	instr

Remarque : les boucles utilisent des tableaux (arrays), que l’on peut créer avec les commandes range (pour les entiers), array ou arange (cf aide-mémoire).

Structures de données

En python, il existe différentes structures de données permettant de représenter des ensembles de nombres flottants :

  • les tuples python : (1,2,3,4)
    • Ces structures non modifiables sont construites à l’aide de parenthèses () encadrant une liste de nombres séparés par des virgules. Parmi les opérations possibles :
tup = (1,2)
tup[1]                   # -> 2               Access to elements
1 in tup                 # -> True,           Membership test
tup + tup                # -> (1,2,1,2)       Concatenation
for i in (1,2): print i  # -> 1 2             Loops over tuples
  • les listes python : [1,2,3,4]
    • Ces structures modifiables sont construites à l’aide des crochets [] encadrant une liste de nombres séparés par des virgules. Les opérations possibles sur les tableaux sont les mêmes que sur les tuples, en ajoutant :
arr = [1,2,3,4,5,6,7,8,9,10,11,12]
arr[0] = 7               # -> [7,2,3 ...        Modification of an element
arr.append(42)           # -> ..., 12,42]       Addition of an element
arr[0:6]                 # -> [1,2,3,4,5,6]     Sub-array
arr[0:6:2]               # -> [1,3,5]           Slicing
for i in arr: print i    # -> 1 2 3 ...         Loops over arrays
  • les tableaux de la bibliothèque numpy : numpy.array([1,2,3,4])
    • Ils possèdent la plupart du temps les mêmes propriétés que les tableaux python, mais se comportent différemment pour les opérations arithmétiques. Cela les rend pratiques pour la manipulation de vecteurs :
nar = numpy.array([1,2,3,4])
arr + arr                # -> [2,4,6,8]         Addition of arrays
arr * arr                # -> [1,4,9,16]        Multiplication of arrays
  • les matrices définies dans cette même bibliothèque :numpy.matrix([[1, 2], [3, 4]])
    • Ces matrices sont des tableaux particuliers à une ou deux dimensions. La principale différence avec les autres types de tableaux, est que l’opération de multiplication utilise le produit de matrices plutôt que le produit terme à terme.
nmat = numpy.matrix( [[1, 1], [0, 1]] )
nmat * nmat     # -> [[1, 2], [0, 1]]           Matrix multiplication

Commandes graphiques

Pour afficher des graphiques à l’aide de python, la bibliothèque matplotlib offre un panel de fonctions assez large. Par exemple, pour dessiner la courbe d’une fonction comme la fonction xtan(2πx)x \rightarrow \tan(2 \pi x) :

import matplotlib.pyplot as mp
import numpy as np

t = np.arange(0.0, 2.0, 0.01)
s = np.cos(2*np.pi*t)
mp.plot(t, s, linewidth=1.0)

Cette série d’appels de fonctions ne fait que calculer le graphique. Il reste encore à le sauvegarder dans un fichier :

mp.savefig("figure")

Pour obtenir un graphique plus parlant, il ne faut pas oublier de légender les axes et de lui donner un titre :

mp.xlabel('Abscissa')
mp.ylabel('Ordinate')
mp.legend('Da wave')
mp.title('Surfing on the wave')

A noter que le titre peit-être donné directement via matplotlib (généralement pour inclusion dans une présentation), ou via \caption de LaTeX\LaTeX qui sera préféré dans un document.

Pour des exemples plus complexes, la galerie de matplotlib contient de nombreux graphiques fournis avec leur code.