Vous êtes sur la page 1sur 18

Initiation en Python

(la suite)
L2 Chimie 2023/2024
Les Structures conditionnelles
Les structures conditionnelles vont nous permettre d’exécuter différents blocs
de code selon qu’une condition spécifique soit vérifiée ou pas.
Python nous fournit les structures conditionnelles suivantes :
• La condition if ("si") ;
• La condition if…else ("si…sinon" ) ;
• La condition if…elif…else ("si…sinon si… sinon") .

La condition if : La structure conditionnelle if est une structure de base


qu’on retrouve dans de nombreux langages de script. Cette condition va
nous permettre d’exécuter un code si une certaine condition est vérifiée.

Exemple :
x=9
y=6
if x>y :
print("x contient une valeur strictement supérieure à y")
La structure conditionnelle ( if…else ) La structure conditionnelle
(if…else) (« si… sinon » ) est plus complète que la condition if puisqu’elle
nous permet d’exécuter un premier bloc de code si un test renvoie True ou
Un autre bloc de code dans le cas contraire.

Exemple

x, y = 5, 10
if x = = 5:
print("x contient l'entier 5")
else:
print("x ne contient pas 5")
if y = = 5:
print("y contient l'entier 5")
else:
print("y ne contient pas 5")
La condition if… elif… else
La condition if…elif…else (« si…sinon si…sinon ») est une structure
conditionnelle encore plus complète que la condition if…else qui nous
permet cette fois-ci d’effectuer autant de tests que l’on souhaite et ainsi de
prendre en compte le nombre de cas souhaités.

Exemple

x = 60
if x < 0:
print("x contient une valeur négative")
elif x< 10:
print("x contient une valeur comprise entre 0 et 10")
elif x < 90:
print("x contient une valeur comprise entre 10 et 90")
else :
Print("x supérieur à 90 ")
Instructions répétitives :

Boucle for
La boucle for Python va nous permettre d’itérer sur les éléments d’une
séquence (liste, chaine de caractères, etc.) selon leur ordre dans la séquence.
C’est-à-dire (permet de répéter un bloc d'instructions un certain nombre de
fois.)

Exemple :
liste = ["atome", 2, « USTHB", 100]
for i in liste:
print(i)

Syntaxe des instructions répétitives de type for en Python :


for variable in liste :
instructions
La fonction range()
Cette fonction permet de générer une suite de valeurs à partir d’une certain
nombre et jusqu’à un autre avec un certain pas ou intervalle.
Exemple :
for n in range(5):
print(n)
for n in range(5, 20):
print(n)
for n in range(5, 20,2):
print(n)

La boucle while

La boucle while va nous permettre d’exécuter un certain bloc de code « tant


qu’une » condition donnée est vérifiée.

Sa syntaxe est la suivante :


x=0
while x < 10 :
print(x)
Quelques modules les plus utilisés en Python :
Le module math
Le module math nous fournit un accès à de nombreuses fonctions
permettant de réaliser des opérations mathématiques comme le calcul d’un
sinus, cosinus, d’une tangente, d’un logarithme ou d’une exponentielle.
Les fonctions les plus utilisées :
• La fonction abs() renvoie la valeur absolue d’un nombre passé en
argument
• La fonction exp() permet de calculer des exponentielles.
• La fonction log() permet de calculer des logarithmes.
• La fonction sqrt() permet de calculer la racine carrée d’un nombre.
• Les fonctions cos(), sin() et tan() permettent de calculer des cosinus, sinus
et tangentes et renvoient des valeurs en radians.
Le module statistics :
Les outils de ce module nous permettent d’effectuer des calculs de
statistiques, comme des calculs de moyenne de médiane ou de variance.
Ce module contient les fonctions suivantes :
• La fonction mean() permet de calculer une moyenne.
• La fonction median() permet de calculer une médiane.
• La fonction variance() permet de calculer une variance.
• La fonction stdev() permet de calculer un écart type.
Exemple :
import statistics as stat
x= [1, 41, 5,13]
a= stat.mean(x)
b= stat.median(x)
c= stat.variance(x)
d= stat.stdev(x)
Print(a,b,c,d)
Module numpy :
Le module numpy est necessaire en bioinformatique. Il permet d’effectuer
des calculs sur des vecteurs ou des matrices, élément par élément, via un
nouveau type d’objet appelé array. Ce module contient des fonctions de
base pour faire de l’algèbre linéaire, des transformées de Fourier…etc.
La fonction array() permet la conversion d’un objet séquentiel (type liste
…etc) en un objet de type array. Voici un exemple simple de conversion
d’une liste à une dimension en objet array :
Exemple :
>>> import numpy
>>> a= [1, 2, 3]
>>> numpy.array(a)
array([1, 2, 3])
>>> b= numpy.array(a)
>>> type(b)
<class 'numpy.ndarray'>
>>> b
array([1, 2, 3])

La fonction arange() est équivalente à range() et permet de construire un


array à une dimension de manière simple.
Exemple :
Import numpy
>>> numpy.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> numpy.arange(10.0)
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
>>> numpy.arange(10,0,-1)
array([10, 9, 8, 7, 6, 5, 4, 3, 2, 1])

Exemple :
 Un des avantages de la fonction Import numpy
>>> v = numpy.arange(4)
arange() est qu’elle permet de
>>> v
générer des objets arrayqui array([0, 1, 2, 3])
contiennent des entiers ou de réels >>> v + 1
selon l’argument qu’on lui passe. array([1, 2, 3, 4])
 La différence fondamentale entre >>> v + 0.1
un objet array à une dimension et array([ 0.1, 1.1, 2.1, 3.1])
une liste (ou un tuple) est >>> v * 2
que celui-ci est considéré comme array([0, 2, 4, 6])
un vecteur. >>> v * v
array([0, 1, 4, 9])
Tableaux
Un tableau T est une structure de données qui permet de stocker des
éléments de manière ordonnée. Chaque élément x appartenant à T est
accessible par son indice (le numéro de la case de T dans laquelle est
stocké x).
Notion :
 Pour créer des tableaux, nous allons utiliser numpy.array().
Exemple :
>>> import numpy as np
>>> u = np.arange(1, 16)
>>> u
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
>>> np.shape(u)
(15,)
>>> u.shape = (3, 5)
>>> u
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
>>> np.shape(u)
(3, 5)
>>> (3, 5)
 Numpy propose un nouveau type de collection : numpy. Ndarray
- Ndarray = n-dimention array
- Représente un vecteur ou une matrice
- Propose un ensemble d’opération arithmétiques sur ces ensembles.
Pour obtenir une instance de la classe ndarray, il faut utiliser la fonction
array proposée par Numpy.
Exemple de définition d’un vecteur
>>> import numpy as np
>>> donnée = np.array([1, 2, 3, 4])
>>> type (donnée)
<class 'numpy.ndarray'>
>>> donnée
array([1, 2, 3, 4])
>>> donnée[1]
2
>>> donnée.shape
(4,)
Il est possible de produire un nouveau tableau numpy, à partir d’un autre,
en changeant son shape. Pour ce faire, on va utiliser la fonction
numpy.reshape(ligne, colonne) ou la méthode reshape.
Exemple :
data= np.array([1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1])
data2 = np.reshape(data, (4, 4))
data2
array([[1, 1, 1, 1],
[1, 0, 0, 1],
[1, 0, 0, 1],
[1, 1, 1, 1]])
data2.shape
(4, 4)
Module matplotlib
Le module matplotlib permet de générer des graphes interactifs depuis Python. Il est
l’outil complémentaire de numpy et scipy lorsqu’on veut faire de l’analyse de données.

Le module pyplot permet donc de tracer des graphes :

Exemple 1:

import matplotlib.pyplot as plt


plt.plot([10, 20, 50, 80, 70, 80, 90, 50, 40, 10])
plt.xlabel("time")
plt.ylabel("speed")
plt.show()
La fonction plot permet de tracer plusieurs séries de valeurs .
Exemple 2 :
import matplotlib.pyplot as plt
dat1= [10, 20, 50, 80, 70, 80, 90, 50, 40, 10]
dat2= [70, 30, 40, 50, 80, 90, 95, 80, 40, 10]
plt.plot(dat1, 'b-o', dat2,'g--^')
plt.xlabel("time")
plt.ylabel("speed")
plt.legend(("dat1", "dat2"))
plt.show()
Exemple 3 :
# fonction cos
from pylab import *
debut = -2 * pi
fin = 2 * pi
pas = 0.1
x = arange(debut,fin,pas)
y = cos(x)
# draw the plot
plot(x,y)
xlabel('angle (rad)')
ylabel('cos(angle)')
title('Fonction: y = cos(x)')
grid()
show()
Le module pylab importe lui-même toutes les fonctions (et variables) du
module numpy (exp : pi, cos, sin, arange, etc.). Il est plus commode de
l’importer par from pylab import * que par import pylab.

La partie qui nous intéresse (la ligne # draw the plot) contient les parties
spécifiques à matplotlib.
– La fonction plot() va générer un graphique avec des lignes et prend
comme valeurs en abscisse (x) et en ordonnées (y) des vecteurs de type
array à une dimension.
– Les fonctions xlabel() et ylabel() sont utiles pour donner un nom aux
axes.
– title() permet de définir le titre du graphique.
– grid() affiche une grille en filligrane.
-show() affiche le graphe
L’exemple suivant montre la représentation en 3D
import numpy as np
import matplotlib.pyplot as plt
def fct(x, y):
return np.sin(x) + np.cos(x+y)
x = np.linspace(0, 5, 100)
y= np.linspace(0, 5, 100)
x, y =np.meshgrid(x, y)
z= fct(x, y)
plt.figure("coolwarm meshgrid")
axes = plt.axes(projection="3d")
axes.plot_surface(x, y, z,cmap = "coolwarm")
plt.show()

Vous aimerez peut-être aussi