Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
avantages :
• Il est gratuit. On peut l’installer à partir d’internet sur autant d’ordinateurs qu’on veut.
• Le python n’a pas besoin d’être compilé pour être exécuté comme les langages Fortran,
C et C++. Que ce soit une instruction ou un script, Python est directement interprété
par l’ordinateur.
54
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
Pour le système d’exploitation Linux, l’installateur python d’anaconda peut être lancé la
manière suivante :
$ ./Anaconda3-2020.02-Linux-x86_64.sh
Une fois l’installation terminée, on peut lancer python directement à partir de la ligne de
commande, comme suit :
$python
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Les trois chevrons >>> indiquent la disponibilité de la ligne de commandes de python (prompt
en anglais) qui permet à l’utilisateur d’exécuter directement des instructions. Ce mode s’appelle
le mode commande de python.
Tapez par exemple l’instruction :
print("Cours PNAD")
Puis validez cette commande en appuyant sur la touche Entrée. En résumé, voici ce qui doit
apparaı̂tre sur votre écran :
>>> print (" Cours PNAD")
Cours PNAD
On peut aussi effectuer des calculs comme suit :
>>> 5*8+5
45
Le mode commandes est donc un système interactif dans lequel on peut entrer des commandes
que python interprètent au moment où on valide la commande en appuyant sur la touche Entrée.
On peut à chaque fois entrer une nouvelle commande ou bien quitter l’interpréteur python, soit
en tapant la commande exit() puis en validant en appuyant sur la touche Entrée, soit en
pressant simultanément les touches Ctrl et D au clavier.
Pour écrire un script ou plusieurs lignes de code, il est plus approprié d’utiliser un éditeur.
55
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
$idle3
Biensûr, il existe d’autres éditeurs de textes qu’on peut utiliser à partir de linux pour pro-
grammer en python, on peut citer vim,emacs, etc. Mais, nous avons choisi pour ce cours,
l’éditeur idle.
On ne doit jamais utiliser des programmes comme Microsoft Word, WordPad ou LibreOffice
pour écrire des lignes de code python, ce sont des traitements de texte.
Fig. 12.2. – Interface de l’éditeur idle. La fenêtre de gauche représente le shell où sera exécuté le code
python. La fenêtre de droite représente un nouveau fichier pour saisir le code. Ces deux
fenêtres doivent être mises toujours côte à côte pour une bonne utilisation de idle.
• Pour ouvrir un nouveau fichier de saisie, dans la fenêtre Python 3.7.6 Shell, cliquer sur
File,New File.
• Pour Exécuter le code, dans la fenêtre de saisie, cliquer sur Run,Run Module
• Pour Enregistrer votre nouveau code, dans la fenêtre de saisie, clique sur File, Save as.
Le nom du fichier doit terminer par l’extension .py pour garantir la surbrillance de la
syntaxe de python.
56
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
Exemple 1. Cet exemple illustre le typage dynamique de python pour les variables.
Le signe # marque le début d’un commentaire, c’est-à-dire le texte qui suit ce signe jusqu’à
la fin de la ligne n’est pas considéré par l’interpréteur de python.
Exemple 2. Cet exemple présente les opérations de concaténation et de découpage des chaı̂nes
de caractères.
57
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
58
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
> Supérieur
< Inférieur
>= Supérieur ou égal
<= Inférieur ou égal
== égal
!= Différent
Remarque 3. Si les variables comparées ne sont pas de même type. Une conversion de type est
effectuée par l’interprêteur avant de procéder à la comparaison. Si la comparaison n’est pas
possible, une erreur est générée.
>>> a=input(’a=’))
3.12
>>> print(type(a))
<class ’str’>
>>> a=int(input(’a=’))
3
>>> print(type(a))
<class ’int’>
59
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
>>> a=float(input(’a=’))
3.14
>>> print(type(a))
<class ’float’>
>>> a=eval(input(’a=’))
3.14
>>> print(type(a))
<class ’float’>
>>> a=32
>>> b=1.72
>>> c=’alpha’
>>> print(a,b,c,sep="-"
32-1.72-alpha
print(’{:format1} {:format2},...’.format(arg1,arg2,...))
Où format1,format2,etc sont les formats d’affichage des arguments arg1,arg2,etc respective-
ment. Le tableau ci-dessous résume les principaux formats utilisés en affichage :
60
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
Exemple 6. Dans cet exemple, on utilise le format d pour formater l’entier a, f pour formater
le réel b et s pour formater la chaı̂ne de caractère c.
>>> a=1980
>>> b=1.728967345
>>> c=’beta’
>>> print("a= {:4d} b={:.4f} c={:s}".format(a,b,c))
a=1980 b=1.7290 beta
61
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
Les deux exemples précédents peuvent être développés autrement en utilisant l’instruction
elif:
a=7
if a>0:
print(’Le nombre est positif’)
elif a<0:
print(’Le nombre est négatif’)
else:
print(’le nombre est nul’)
while condition:
bloc d’instructions
Le python exécute le bloc d’instructions indenté si la condition est vraie. Après l’exécution
du bloc, la condition est à nouveau évaluée. Si elle est toujours vraie, le bloc est exécuté de
nouveau. Ce processus se poursuit jusqu’à ce que la condition devienne fausse. Voici un exemple
de la boucle while en python :
i=0
while i<=10:
print(i)
i=i+1
L’exemple suivant illustre l’utilisation de la boucle for pour afficher les couleurs d’une liste.
couleurs=[’vert’, ’rouge’, blanc] for coul in couleurs : print(coul)
Ici l’élément coul est une couleur dans la liste couleurs. Les valeurs vert, rouge et blanc seront
affichées en sortie de ce programme.
for i in range(10):
print(i)
62
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
>>>print(list(range(5))
[0,1,2,3,4]
>>>sin(pi/4)
0.7071067811865476
def nom_fonction(param1,param2,...):
instructions
return valeurs_de_retour
où param1, param2 ,· · · sont les paramètres de la fonction. Un paramètre peut être n’importe
quel objet python, y compris une fonction. Les paramètres peuvent recevoir des valeurs par
défaut.
Remarque 5. Le paramètre dans l’appel d’une fonction est facultatif. Si l’instruction de retour
ou les valeurs de retour sont omis, la fonction renvoie l’objet nul.
Dans l’exemple qui suit, la fonction derive calcule les deux premières dérivées d’une fonction
f(x) par la formule de dérivation numérique centrée :
63
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
objfichier=open(nomfichier,mode)
Où nomfichier est le nom du fichier sur le support de stockage et mode est l’action
d’ouverture adoptée. Les modes d’ouverture sont résumés dans le tableau ci-dessous :
objetfichier.close()
data=open(’results.dat’,’r’)
lines=data.readlines()
print(lines)
On peut aussi parcourir les lignes du fichier dans une boucle comme suit :
data=open(’results.dat’,’r’)
for line in data:
print(line)
On peut même découper les éléments d’une ligne et les mettre dans des listes séparées par :
data=open(’results.dat’,’r’)
for line in data:
lines=line.split()
print(lines)
64
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
Remarque 6. On peut utiliser la fonction print pour diriger la sortie d’écriture vers un fichier
de la manière suivante :
print(val1,val2,...,file=fichierobjet)
On peut aussi charger quelques fonctions à partir d’un module de python comme suit :
Module Utilité
math regroupe les fonctions mathématiques
numpy traitement des vecteurs et matrices
matplotlib Tracé de graphiques
scipy méthodes de calcul scientifique
random génération de nombres aléatoires
65
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
import numpy as np
import numpy.linalg as alg
a=np.array([1,2,3])
m=np.array([[1,2,3],[4,5,6]])
L’attribut shape permet de connaı̂tre la taille d’une matrice, c’est-à-dire le nombre de lignes
et de colonnes comme dans cet exemple :
>>>print(m.shape)
(2,3)
>>>m.reshape(3,2)
>>>print(m)
[[1 2]
[3 4]
[5 6]]
L’accès à un terme d’une matrice se fait par l’opération d’indexage des éléments m[i,j].
Les indices commencent toujours par i = 0 pour la 1ère ligne et j = 0 pour la première colonne.
numpy dispose de deux fonctions zeros() et ones() pour initialiser les vecteurs ou ma-
trices par des 0 ou des 1.
La fonction zeros() permet d’initialiser un vecteur ou une matrice par des 0.
>>>m=np.zeros((2,3))
>>>print(m)
[[0. 0. 0.]
[0. 0. 0.]]
66
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
>>>m=np.ones((2,2))
>>>print(m)
[[1. 1.]
[1. 1.]]
Ces deux fonctions génèrent par défaut des float mais on peut générer des entiers en passant
l’argument int à la fonction comme suit :
>>>m=np.zeros((2,3),int)
>>>print(m)
[[0 0 0]
[0 0 0]]
et
>>>m=np.ones((2,2),int)
>>>print(m)
[[1 1]
[1 1]]
Si on veut initialiser une matrice avec un autre élément, numpy dispose de la fonction
full(). Par exemple initialiser un matrice 2 × 2 par le nombre π, on procède comme suit :
>>>import numpy as np
>>>from math import pi
>>>m=np.full((2,2),pi)
>>>print(m)
[[3.14159265 3.14159265]
[3.14159265 3.14159265]]
L’exemple suivant montre comment on peut lire les éléments d’une matrice n × n dans une
double boucle for :
import numpy as np
n=int(input(’n=’))
m=np.zeros((n,n)) #creation d’une matrice nxn composés de 0
for i in range(n):
for j in range(n):
print(’m[’,i,’,’,j,’]=’)
m[i,j]=eval(input(’m[’,i,j,’]=’))
numpy permet aussi de générer des matrices utiles en algèbre linéaire telle que la matrice
identité ou la matrice diagonale. Pour générer par exemple une matrice identité d’ordre 3, on
écrit :
>>>m=np.eye(3)
>>>print(m)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
67
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
, On écrit :
>>>m=np.diag([1,2,3])
>>>print(m)
[[1. 0. 0.]
[0. 2. 0.]
[0. 0. 3.]]
Remarque 7. Pour effectuer des opérations arithmétiques entre les éléments des matrices. Les
opérateurs d’addition, soustraction et multiplication sont valables aussi sous numpy.
Par exemple pour effectuer l’opération suivante :
1 2 1 0 4 2
+3 =
3 4 0 1 3 7
>>>a=np.array([[1,2],[3,4]])
>>>n=np.eye(2)
>>>c=a+3*b
>>>print(c)
[[4. 2]
[3. 7.]]
D’autres opérations très importantes en algèbre linéaire sont disponibles avec le module
numpy et son sous module linalg, les plus importantes sont le calcul de la transposée, le
calcul du déterminant, de la puissance d’une matrice, de la trace, du produit scalaire et du
produit matriciel et bien d’autres opérations.
Pour calculer la transposée d’une matrice, on écrit :
>>>a=np.array([[1,2,3],[4,5,6],[7,8,9]])
>>>b=np.transpose(a)
>>>print(b)
[[1. 4. 7.]
[2. 5. 8.]
[3. 6. 9.]
]
>>>a=np.array([[1,2,3],[4,5,6],[7,8,9]])
>>>print(np.trace(a))
15.
Pour calculer le produit scalaire de deux vecteurs, par exemple a = (1, 2, 3) et b = (4, 5, 6) :
68
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
>>>a=np.array([[1,2,3])
>>>b=np.array([[4,5,6])
>>>print(np.vdot(a,b))
32.
>>>print(np.cross(a,b))
[-3 6 -3]
, on écrit :
>>>a=np.array([[1,2,3],[4,5,6],[7,8,9]])
>>>b=alg.matrix_power(a,3)
>>>print(b)
[[ 468 576 684]
[1062 1305 1548]
[1656 2034 2412]]
>>>print(alg.det(a))
6.66133814775094e-16
import numpy as np
import matplotlib.pyplot as plt
69
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
Avec quelques instructions supplémentaires, nous pouvons facilement tracer plusieurs courbes
à la fois et ajouter un titre, une légende et des étiquettes pour les axes x et y :
import numpy as np
import matplotlib.pyplot as plt
70
Dr Sid Ahmed Sabeur Faculté de Physique, USTOMB
71