Académique Documents
Professionnel Documents
Culture Documents
0. Généralités
Pas de caractère de fin de ligne.
En général, une seule instruction par ligne. Si plusieurs, le séparateur est le point virgule ;
Python est sensible à la casse (T et t désignent des variables différentes).
Pour insérer du commentaire : # commentaire (signe croisillon)
ou triple guillemets : ‘‘‘ commentaire ‘‘‘ OU ‘’ ‘’ ‘’ commentaire ‘’ ‘’ ‘’
1
Notions pratiques de Python
2. Instructions
b = 1.0
c = 2.0 # Affectation de valeur aux variables b et c
a = b b = c
Exemple : b = c et a = b ne donneront pas les mêmes résultats.
print(a,b,c) print(a,b,c)
2
Notions pratiques de Python
3. Listes
Une liste est une séquence de valeurs qui peuvent être de n’importe quel type (entier, réel, caractère, …)
Sous-listes : on peut sélectionner plusieurs éléments en utilisant l’opérateur [m:n] où m et n sont des
entiers ou des expressions. Attention : m est inclu, n est exclu.
ma_sous_liste = ma_liste[0:2]
3
Notions pratiques de Python
4
Notions pratiques de Python
On a un nouveau type d’objet (ou classe), numpy.ndarray, avec des fonctions (méthodes) et opérateurs
associés. Un objet a des attributs :
print(mon_tableau.ndim) # à l’écran : 1
print(mon_tableau.size) # à l’écran : 5
print(mon_tableau.shape) # à l’écran : (5,)
print(mon_tableau.dtype) # à l’écran : float64
5
Notions pratiques de Python
Quelques fonction utiles de NumPy pour créer un tableau dans un intervalle donné :
arange(début, fin, pas) : valeurs régulièrement espacées pour un pas donné
dans l’intervalle [début, fin[
A = np.arange(0, 5, 0.5) ; print(A)
# à l’écran : [0 , 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5]
linspace(début, fin, nombre d’éléments) : valeurs régulièrement espacées
pour un nombre d’éléments donné dans l’intervalle [début, fin]
B = np.linspace(0, 1, 6) ; print(B)
# à l’écran : [0. , 0.2, 0.4, 0.6, 0.8, 1.0]
Une routine pour créer un tableau d’éléments entre 2 bornes connues avec un pas fixe :
start = 0. # borne inférieure
end = 5.0 # borne supérieure
step = 0.5 # pas
interval = end – start # intervalle
num_points = int(interval / step) + 1 # nombre d'éléments
g = np.linspace(start, end, num_points) # tableau
# à l’écran : [0 , 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0]
7. Conditions
if condition1 : # Passage à la ligne après les :
bloc d’instructions1 # On indente les instructions à exécuter si condition1 est remplie
elif condition2 :
bloc d’instructions2 # On indente les instructions à exécuter si condition2 est remplie
... # On peut faire autant de ’elif’ que désiré
else : # Dernier cas possible (pas besoin de ’if (condition)’)
dernier bloc d’instructions # On indente les instructions correspondantes
Instructions (suite du programme) # sortie du bloc conditionnel : instructions ne sont plus indentées
Exemple :
if y >= 0.0 :
z = sqrt(y) # Racine carrée de y (si y est positif ou nul)
print(‘racine carree ’, z)
else :
print(’y est negatif’)
print(‘Bye ...’)
Cas particulier : Lorqu’il n’y a qu’une seule instruction à exécuter pour une condition donnée,
on peut l’écrire sur une seule ligne :
if y >= 0.0 : print(‘racine carree ’, sqrt(y))
8
Notions pratiques de Python
Remarque: l’expression y >= 0.0 est du type logique ; elle ne peut prendre que 2 valeurs :
True si y ≥ 0 et False si y < 0. On pourrait donc aussi écrire :
ok = (y >= 0.)
if ok :
z = sqrt(y)
else :
print(’y est negatif’)
9
Notions pratiques de Python
9. Boucles
9.1 L’instruction while
while condition : # passage à la ligne après les deux points
bloc d’instructions # bloc à répéter tant que condition est vérifiée
# N. B. : on indente les instructions à répéter
n = 3
while n > 0 : 3
print(n) donne à l’écran : 2
n = n - 1 1
print(‘partez !’) partez !
Rq 1 : Attention, il existe un risque de boucle infinie (si la condition d’entrée est toujours vraie)
Rq 2 : Il existe une instruction break pour sortir d’une boucle while (à éviter)
for i in range(début, fin, pas) : # passage à la ligne après les deux points
bloc d’instructions # on indente le bloc d’instructions à répéter
for i in range(3,0,-1) : n = 3 3
ou for i in range(n) : à l’écran : 2
print(i)
print(n-i) 1
print(‘partez !’)
print(‘partez !’) partez ! 10
Notions pratiques de Python
Rq : Lorsque l’on connaît l’intervalle de variation de la quantité que l’on cherche à faire
varier, il est préférable d’utiliser une boucle finie (for plutôt que while).
Rq 2 : les indices de boucle (début, fin, pas) sont nécessairement de type entier. Donc
pour itérer sur des valeurs réelles, il faut créer des variables supplémentaires.
Exemple : on veut calculer x3 pour x variant entre -10 et 10 par pas de 0.1
x = -10.0
for i in range(1, 202, 1) : for i in range(-100, 101, 1) :
y = x**3 ou x = 0.1*i
x = x + 0.1 y = x**3
Les boucles peuvent être imbriquées les unes dans les autres :
for i in range(imax) :
...
for j in range(jmax) :
print(‘boucle 1 iteration ’,i, ‘boucle 2 iteration ’, j)
...
On peut boucler sur les indices d’une liste ou d’un tableau :
liste = [ [1,3,4,2], [1,4,6,2], [2,7,9,1] ]
for i in liste :
sum = 0.
for j in i :
sum = sum + j
print(‘la somme des éléments de ’,i, ‘ vaut ’, sum)
10. Fonctions
Créer une nouvelle fonction :
def nom_fonction(par1, par2, par3=“valeur_defaut”) :
””” docstring : description de la function ”””
... bloc d’instructions indentées
... return valeur1, valeur2
Appel de la fonction :
nom_fonction(para1, para2, para3)
Ex. : construction d’une fonction bsom(z) qui calcule le barycentre (1D) d’un ensemble z de réels
def bsom(z) :
s = 0.0
for i in range(1, size(z)+1) :
s = s + i*z[i-1]
res = s/sum(z)
return res
# appel de la fonction
b = bsom(z)
print(b)
11. Entrées-sorties
Ouvrir, lire et fermer un fichier (ici le fichier s’appelle res.dat) :
file = open(’res.dat’, mode = ‘r’, encoding = ‘utf-8’)
print(file.read()) # On lit tout le fichier avec la méthode .read() sur la variable file
...
file.close() # fermeture du fichier (pour libérer la mémoire)
Lire au clavier :
h = input(’entrer la hauteur \n’) # attention : variable h est une chaine de caractères
h = float(h) # conversion en réel
print(h)
Les formats :
x = 45,9876 ; n = 6
print(‘x = %5.3f, n = %d’ % (x, n) ) # réel avec 3 chiffres après la virgule, entier
print(‘x = %5.3e, n = %5d’ % (x, n) ) # réel en notation exponentielle, entier sur 5 caractères
x = 45,988, n = 6
à l’écran : X = 4,599e+01, n = 6
Pour importer les données d’un fichier texte dans un tableau Numpy, on peut utiliser la fonction
loadtxt(). Chaque ligne du fichier doit avoir le même nombre de valeurs. Les lignes commençant par
# ne sont pas lues.
import numpy as np
data = np.loadtxt(’res.dat’) # ici on importe dans une variable data
Si le fichier comportait 100 lignes et 2 colonnes, alors data sera un tableau Numpy (100, 2). Plutôt
que de créer un tableau 2D, il est possible de créer 2 tableaux 1D de 100 éléments contenant les
valeurs de chaque colonne avec l’argument unpack :
a, b = np.loadtxt(’res.dat’, unpack = True) # ici on importe dans 2 variables a et b
On peut sauvegarder les données d’un tableau Numpy dans un fichier en utilisant la fonction savetxt() :
np.savetxt('out.dat', np.c_[a, b], fmt = '%10.3e')
(ici on a utilisé la commande Numpy c_[] pour concaténer en colonnes les tableaux 1D)
14