Cours s2 Info1
Cours s2 Info1
Deuxième semestre
M. ZBAKH
2022 - 2023
1
1. Rappel et Complément
_________________________________________________________________________________________
2 Programmation en Python Pr. M. Zbakh
Indentation Python:
La plupart des langages de programmation tels que C, C ++ et Java utilisent
des accolades {} pour définir un bloc de code. Python utilise l'indentation.
Un bloc de code (corps d'une fonction, d'une boucle, etc.) commence par une
indentation et se termine par la première ligne non indentée.
1. if x > y :
2. print (" x est sup strictement à y ")
3. elif x < y :
4. print (" x est inf strictement à y ")
5. else:
6. print (“x et y sont égales“)
_________________________________________________________________________________________
3 Programmation en Python Pr. M. Zbakh
Indentation Python:
1. chaine = "34654321947 "
2. nb_4 = 0
3. for x in chaine :
4. if x == "4 " :
5. nb_4 = nb_4 + 1
6. print ("il y a", nb_4 , "répétition de 4 dans la chaine")
1. for i in range(5):
2. if i==3:
3. break
4. print(i)
1. 0
2. 1
3. 2
_________________________________________________________________________________________
4 Programmation en Python Pr. M. Zbakh
Tuples en Python :
A partir des types de base (int, float, …), on peut élaborer de nouveaux types.
Les tuples ressemblent aux listes, mais on ne peut pas les modifier une fois qu’ils ont été créés.
_________________________________________________________________________________________
5 Programmation en Python Pr. M. Zbakh
Tuples en Python :
Parfois, les tuples ne sont pas entourés de parenthèses, même s’il s’agit quand même de tuples.
6
Tuples en Python :
Cette syntaxe avec plusieurs variables à gauche du signe = peut aussi être utilisée avec une variable
unique à droite si celle-ci contient un tuple.
_________________________________________________________________________________________
7 Programmation en Python Pr. M. Zbakh
Ensembles en Python :
Les ensemble (ou sets en anglais) forment un autre type de données composites (composés) en Python.
Un ensemble est une collection d’éléments non ordonnée, sans index et qui ne peut pas posséder
l’élément dupliqué.
Une des utilisation les plus courantes des ensembles est de les utiliser pour supprimer des valeurs
doublons à partir d’un autre type de données.
Pour créer un ensemble, nous utilisons une paire d’accolades { } et plaçons les différents éléments de
l’ensemble entre ces accolades en les séparant avec une virgule.
Notez que pour créer un ensemble vide il faudra utiliser la fonction set() car la syntaxe { } va créer un
dictionnaire vide et non pas un ensemble vide.
8
Récapitulatif sur les types de données et sur les types
composites (ou composés) Python:
Les types de données simples étudiés sont les Nombre (entier, décimaux ou complexes), les Booléens et
les Chaines de caractères. Il sont facile à manier et il est simple de savoir quand utiliser une type plutôt
qu’un autre.
Les types de données composite étudiés sont les listes, les tuples, les dictionnaires et les ensembles. Il est
généralement moins évident de choisir quel type de données utiliser ici car on a tendance à penser “qu’ils
se ressemblent tous”.
Voici donc un résumé des grandes caractéristiques de ces types et se qui les différencie :
Les listes sont des collections d’éléments ordonnés et modifiables qui peuvent contenir plusieurs
fois la même valeur ;
Les tuples sont des collections d’éléments ordonnés et non modifiables qui peuvent contenir
plusieurs fois la même valeur ;
Les dictionnaires sont des collection d’éléments non ordonnés mais indexés avec des clefs de
notre choix et modifiables qui n’acceptent pas de contenir plusieurs fois le même élément ;
Les ensembles sont des collections d’éléments non ordonnées, non indexés et non modifiables qui
n’acceptent pas de contenir plusieurs fois le même élément.
_________________________________________________________________________________________
9 Programmation en Python Pr. M. Zbakh
Rappel : l’instruction de contrôle if:
Exercice 1 :
_________________________________________________________________________________________
10 Programmation en Python Pr. M. Zbakh
Rappel : l’instruction de contrôle if:
Exercice 1 :
_________________________________________________________________________________________
11 Programmation en Python Pr. M. Zbakh
Rappel : Boucle while:
Exercice 2 :
_________________________________________________________________________________________
12 Programmation en Python Pr. M. Zbakh
Rappel : Boucle while:
Exercice 2 :
_________________________________________________________________________________________
13 Programmation en Python Pr. M. Zbakh
Rappel : Boucle for:
Exercice 3 :
_________________________________________________________________________________________
14 Programmation en Python Pr. M. Zbakh
Rappel : Boucle for:
Exercice 3 :
_________________________________________________________________________________________
15 Programmation en Python Pr. M. Zbakh
Rappel : Boucle for avec l’instruction de contrôle if:
Exercice 4 :
_________________________________________________________________________________________
16 Programmation en Python Pr. M. Zbakh
Rappel : Boucle for avec l’instruction de contrôle if:
Exercice 4 :
_________________________________________________________________________________________
17 Programmation en Python Pr. M. Zbakh
Rappel : les listes:
Exercice 5 :
Définir la liste : liste = [80, 30, 100, 20, 70,10], puis effectuez les
actions suivantes :
– triez et affichez la liste ;
– enlevez l’élément 20 et affichez la liste ;
– ajoutez l’élément 12 à la liste et affichez la nouvelle liste ;
– renversez et affichez la nouvelle liste ;
– affichez l’indice de l’élément 70 dans la liste ;
– affichez la sous-liste du 2eme au 3eme élément ;
– affichez la sous-liste du début au 3eme élément ;
– affichez la sous-liste du 4eme au dernier élément de la liste ;
18
Rappel : les listes:
Exercice 5 :
Définir la liste : liste = [80, 30, 100, 20, 70,10], puis effectuez les actions suivantes :
– triez et affichez la liste ;
– enlevez l’élément 20 et affichez la liste ;
– ajoutez l’élément 12 à la liste et affichez la nouvelle liste ;
– renversez et affichez la nouvelle liste ;
– affichez l’indice de l’élément 70 dans la liste ;
– affichez la sous-liste du 2eme au 3eme élément ;
19 – affichez la sous-liste du début au 3eme élément ;
– affichez la sous-liste du 4eme au dernier élément de la liste ;
2. DÉFINITIONS EN COMPRÉHENSION:
Liste en compréhension :
Une liste en compréhension (comprehension list) permet de créer une liste à partir d’une itération.
Un intérêt des listes en compréhension est aussi de permettre de construire une nouvelle liste à partir
d’une liste existante :
_________________________________________________________________________________________
20 Programmation en Python Pr. M. Zbakh
2. DÉFINITIONS EN COMPRÉHENSION:
Liste en compréhension :
Il est également possible d’appliquer un filtre lors de la création d’une liste en compréhension afin de ne
pas prendre un compte certains éléments de la liste ou de l’itération de départ.
En combinant la liste en compréhension avec des méthodes telles que zip(), il est possible de construire
une liste comme le résultat d’opérations sur plusieurs listes :
liste1 = [1, 2, 3, 4]
liste2 = [10, 20, 30, 40]
nouvelle_liste = [x * y for x, y in zip(liste1, liste2)]
print(nouvelle_liste)
# affiche [10, 40, 90, 160]
_________________________________________________________________________________________
21 Programmation en Python Pr. M. Zbakh
2. DÉFINITIONS EN COMPRÉHENSION:
Liste en compréhension :
Il est également possible de combiner deux itérations dans une liste en compréhension. Cela permet de
réaliser une itération sur chaque élément de la liste ou de l’itération de départ :
Dans l’exemple ci-dessus, la liste est construite en itérant sur chaque mot de la liste et donc de créer un
tableau de l’ensemble des lettres.
_________________________________________________________________________________________
22 Programmation en Python Pr. M. Zbakh
2. DÉFINITIONS EN COMPRÉHENSION:
Dictionnaire en compréhension :
_________________________________________________________________________________________
23 Programmation en Python Pr. M. Zbakh
3. FONCTIONS PYTHON:
• Vous avez peut-être envisagé la possibilité de 4. print ("With tax: ", bill)
5. return bill
réutiliser un morceau de code avec quelques
valeurs différentes. 6. meal_cost = 100
7. tax(meal_cost)
• Au lieu de réécrire tout le code, il est beaucoup
plus simple de définir une fonction, qui peut
ensuite être utilisée àplusieurs reprises. Exécuter
_________________________________________________________________________________________
24 Programmation en Python Pr. M. Zbakh
S tr u cture d ’ u n e Fo n c t ion
1. def MyFunction():
2. #Prints 'Hello World!' to the console.
def MyFunction ()
# Il n'y a pas de paramètres
"Hello World!
• Le corps, qui décrit les procédures que la
fonction effectue.Le corps est en retrait,tout
comme les instructions conditionnelles.
_________________________________________________________________________________________
25 Programmation en Python Pr. M. Zbakh
Paramètres et Arguments
1. def MyFunction(n):
1. print (“ le n = “ , n)
• Exemple: Le n = 10
_________________________________________________________________________________________
26 Programmation en Python Pr. M. Zbakh
Appel et Réponse
1. def MyFunction(n) :
1. print (“ le n = “ , n)
• Lors de la définition d'une fonction,les 2. MyFunction (10)
variables sont appelées paramètres.
_________________________________________________________________________________________
27 Programmation en Python Pr. M. Zbakh
1. def Carre(n):
PARAMÈTRES ET 1. sqr = n ** 2
ARGUMENTS
2. print(" le carré de ", n, " et ", sqr )
3. return sqr
• Le but des fonctions en général est de prendre 2. Carre(10)
des entrées et de retourner quelque chose.
• L'instruction return est utilisée lorsqu'une
fonction est prête à renvoyer une valeur à Exécuter
l'appelant.
• L'instruction return provoque la fermeture de le carré de 10 et 100
votre fonction et le renvoi d'une valeur à
l'appelant.
_________________________________________________________________________________________
28 Programmation en Python Pr. M. Zbakh
U N E F O N C T I O N PEUT 1. def ajouterUn(n) :
APPELER UNE AUTRE 2. return (n + 1)
FONCTION
3. def etUnAutre(n) :
• Nous avons vu des fonctions permettant 4. return (ajouterUn(n) + 1)
d’imprimer du texte ou de faire de l’arithmétique 5. print (etUnAutre(3))
simple, mais ces fonctions peuvent être beaucoup
plus puissantes que cela.
Exécuter
_________________________________________________________________________________________
29 Programmation en Python Pr. M. Zbakh
def cube (number):
PARAMÈTRES ET
ARGUMENTS return number**3
n = [3, 5, 7]
def list_extender(lst) : print(i,x[i])
lst.append(9) print_list(n)
return lst
n = [3, 5, 7]
print (list_extender(n)) def double_list(x):
for i in range(0, len(x)):
def my_function(x): x[i] = x[i] * 2
for i in range(0, len(x)):
x[i] = x[i]*2 return x
return x print (double_list(n))
L = [1,2,3,5]
print (my_function(L))
_________________________________________________________________________________________
33 Programmation en Python Pr. M. Zbakh
PARAMÈTRES ET n = [3, 5, 7]
ARGUMENTS
def print_list(x):
Exécution: for i in range(0, len(x)):
n = [3, 5, 7]
def list_extender(lst) : print(i,x[i])
lst.append(9) print_list(n)
return lst
# 0,3
#1,5
print (list_extender(n))
#2,7
#[3, 5, 7,9]
n = [3, 5, 7]
def my_function(x): def double_list(x):
for i in range(0, len(x)): for i in range(0, len(x)):
x[i] = x[i]*2
x[i] = x[i] * 2
return x
return x
L = [1,2,3,5]
print (double_list(n))
print (my_function(L))
# [2,4,6,10] #[6, 5, 7]
_________________________________________________________________________________________
34 Programmation en Python Pr. M. Zbakh
PARAMÈTRES ET n = ["Ahmed", "Amine"]
ARGUMENTS
def join_strings(words):
result=""
Exemples: for item in words :
result = result + item
return (result)
m = [1, 2, 3]
print (join_strings(n))
n = [4, 5, 6]
def join_lists(x,y) :
return x + y
n = [3, 5, 7]
print join_lists(m, n) def total(numbers):
result = 0
for i in range (0,len(numbers)):
result = result + numbers[i]
return result
print (total(n))
35
PARAMÈTRES ET n = ["Ahmed", "Amine"]
ARGUMENTS
def join_strings(words):
result=""
for item in words :
Exécution: result = result + item
return (result)
m = [1, 2, 3]
print (join_strings(n))
n = [4, 5, 6]
#AhmedAmine
def join_lists(x,y) :
return x + y n = [3, 5, 7]
print join_lists(m, n) def total(numbers):
#[1,2,3,4,5,6] result = 0
for i in range (0,len(numbers)):
result = result + numbers[i]
return result
print (total(n))
#15
_________________________________________________________________________________________
36 Programmation en Python Pr. M. Zbakh
PARAMÈTRES ET
ARGUMENTS
Exemples:
_________________________________________________________________________________________
37 Programmation en Python Pr. M. Zbakh
PARAMÈTRES ET
ARGUMENTS
Exécution :
#[1, 2, 3, 4, 5, 6, 7, 8, 9]
_________________________________________________________________________________________
38 Programmation en Python Pr. M. Zbakh
LES FONCTIONS
RECURSSIVES
Exemple :
print(puissance(a,b))
Exécution :
8
_________________________________________________________________________________________
39 Programmation en Python Pr. M. Zbakh
PARAMÈTRES ET
ARGUMENTS
() et len ().
1. BONJOUR MES AMIS
• Mais Python possède également certaines 2. bonjour mes amis
fonctions qui vont nous permettre 3. 16
d’effectuer des opérations
mathématiques intéressantes, comme
range(), round(), sum(), min() et
max().
40
def biggest_number(*args):
PARAMÈTRES ET
ARGUMENTS print (max(args))
return max(args)
• Maintenant que vous comprenez ce que
sont les fonctions et comment les utiliser, def smallest_number(*args):
examinons certaines des fonctions print (min(args)) Exécuter
intégrées à Python (aucun module return min(args)
requis!). 1. 10
2. -10
def sum_number(*args): 3. 0
• Vous connaissez déjà certaines des fonctions
print (sum(args)) 4. 10
intégrées que nous avons utilisées avec des
return sum(args)
chaînes, telles que .upper (), .lower (), str
() et len (). def distance_from_zero(arg):
print (abs(arg))
• Mais Python possède également certaines return abs(arg)
fonctions qui vont nous permettre
d’effectuer des opérations biggest_number(-10, -5, 5, 10)
mathématiques intéressantes, comme smallest_number(-10, -5, 5, 10)
range(), round(), sum(), min() et sum_number(-10, -5, 5, 10)
max().
41 distance_from_zero(-10)
PARAMÈTRES ET
ARGUMENTS
1. print(round(-2.7))
• La fonction round() permet 2. print(round(1.2))
d’arrondir un nombre spécifié en 3. print(round(1.5))
argument à l’entier le plus proche avec 4. print(round(1.6))
un degré de précision (un nombre de
décimales) éventuellement spécifié en
deuxième argument.
Exécuter
_________________________________________________________________________________________
42 Programmation en Python Pr. M. Zbakh
PARAMÈTRES ET
ARGUMENTS
1. print (type(42))
2. print (type(4.2))
• Enfin, la fonction type () renvoie le 3. print ( type('spam'))
type des données qu’elle reçoit sous
forme d’argument. Si vous demandez
à Python de procéder comme suit: Exécuter
1. <type 'int'>
2. <type 'float'>
3. <type 'str'>
_________________________________________________________________________________________
43 Programmation en Python Pr. M. Zbakh
SUPPRIMER DES
ÉLÉMENTS DES LISTES
_________________________________________________________________________________________
44 Programmation en Python Pr. M. Zbakh
FIN DES LISTES
_________________________________________________________________________________________
46 Programmation en Python Pr. M. Zbakh
Variables locales,
variables globales 1. def test() :
b est une
2. b=5 variable
3. a=2 locale
4. print(a, b)
5. a = 2 A, b sont des
• Les variables définies à l’extérieur 6. b = 7
variables
globales
d’une fonction sont des variables 7. test()
globales. Leur contenu est « 8. print(a, b)
visible » de l’intérieur d’une
fonction, mais la fonction ne peut
Exécution
pas le modifier.
2 5
2 7
_________________________________________________________________________________________
47 Programmation en Python Pr. M. Zbakh
Variables locales,
variables globales def test() :
global b
b=5
Utilisation d’une variable globale - global print (a, b)
print("a=", a, "b=", b)
Exécution
a= 10 b= 5
a= 5 b= 10
_________________________________________________________________________________________
49 Programmation en Python Pr. M. Zbakh
def permutation() :
Variables locales, global a
variables globales global b
tmp=a
a=b
Application: b=tmp
print("a=",a,"b=",b
print("a=", a, "b=", b)
Exécution
a= 10 b= 5
a= 10 b= 5
_________________________________________________________________________________________
50 Programmation en Python Pr. M. Zbakh
Modules Python standards Math, Random et Statistics
Le module math
Le module math
Remarques:
• Les fonctions de ce module ne peuvent pas être utilisées avec des nombres
complexes. Pour cela, il faudra plutôt utiliser les fonctions du module cmath.
• Le module math définit également des constantes mathématiques utiles comme pi
ou le nombre de Neper, accessibles via math.pi et math.e.
1. import math 4
2. print(math.ceil(3.1)) 4
3. print(math.ceil(3.9)) 3
Exécution 3
4. print(math.floor(3.1))
5. print(math.floor(3.9)) 4.0
6. print(math.fabs(-4)) 3.141592653589793
7. print(math.pi) 2.718281828459045
8. print(math.e)
52
Modules Python standards Math, Random et Statistics
Le module random
• Le module random nous fournit des outils pour générer des nombres pseudo-
aléatoires de différentes façons.
• La fonction random() est le plus utilisée du module. Elle génère un nombre à virgule
flottante aléatoire de façon uniforme dans la plage semi-ouverte [0.0, 1.0).
• La fonction uniform() va elle générer un nombre à virgule flottante aléatoire compris
dans un intervalle. On va lui passer deux nombes en argument : le premier nombre
représente la borne basse de l’intervalle tandis que le second représente la borne
supérieure.
Le module statistics
• Le module statistics nous fournit des outils nous permettant d’effectuer des calculs de
statistiques peu complexes, comme des calculs de moyenne, de médiane ou de
variance.
• Ce module contient notamment les fonctions suivantes :
o La fonction mean() permet de calculer une moyenne ;
o La fonction median() permet de calculer une médiane ;
o La fonction variance() permet de calculer une variance ;
o La fonction stdev() permet de calculer un écart type
54
6. print(stat.stdev(x))
APPLICATIONS
Application 1 :
[3, 4, 5, 6, 7, 8]
_________________________________________________________________________________________
56 Programmation en Python Pr. M. Zbakh
1. print(" Application 2 :")
2. result2 = [i+3 for i in range(6) if i >= 2]
APPLICATIONS
3. print(result2)
_________________________________________________________________________________________
57 Programmation en Python Pr. M. Zbakh
1. print("Application 3")
2. result3" = [i+j for i in "abc" for j in "de"]
APPLICATIONS
3. print(result3)
Application 3
['ad', 'ae', 'bd', 'be', 'cd', 'ce']
_________________________________________________________________________________________
58 Programmation en Python Pr. M. Zbakh
APPLICATIONS
1. print("Application 4")
2. s = sum([i for i in range(10)])
3. print("somme =", s)
4. Utilisez une liste en compréhension
pour calculer la somme d’une liste
d’entiers de 0 à 9.
Exécution
somme = 45
_________________________________________________________________________________________
59 Programmation en Python Pr. M. Zbakh
Modules et importations
Par exemple, nous allons créer un fichier nommé puissance.py qui va définir deux
fonctions : carre() et cube(). Un tel fichier est appelé un module et il va pouvoir
être importé dans un autre fichier, et en particulier dans le fichier qui contient le
programme principal.
_________________________________________________________________________________________
60 Programmation en Python Pr. M. Zbakh
Modules et importations
def carre(valeur):
resultat = valeur**2
return resultat
def cube(valeur):
resultat = valeur**3
return resultat
Il est maintenant possible d’utiliser dans un programme principal les fonctions qui
ont été définies dans le module puissance.py. Pour cela, il faut importer les
fonctions à partir du module.
Exemple : on importe une seule fonction
from puissance import carre
a = 5
u = carre(a)
print("le carre vaut", u)
61
Modules et importations
Avertissement:
Le fichier puissance.py doit être dans le même répertoire que le programme
principal (ou bien se trouver dans le « path » de Python).
_________________________________________________________________________________________
62 Programmation en Python Pr. M. Zbakh
Modules et importations
Avertissement:
L’importation de toutes les fonctions avec * est fortement déconseillée. En effet, elle ne
permet pas d’avoir une vision claire des fonctions qui ont été importées. Ceci est donc une
source potentielle d’erreurs.
________________________________________________________
63 Programmation en Python Pr. M. Zbakh
Modules et importations
import puissance
a = 5
u = puissance.carre(a)
print("le carre vaut", u)
v = puissance.cube(a)
print("le cube vaut", v)
Note:
Dans ce cas, il faut préciser le nom du module devant la fonction.
_________________________________________________________
64 Programmation en Python Pr. M. Zbakh
Modules et importations
import puissance as pu
a = 5
u = pu.carre(a)
print("le carre vaut", u)
v = pu.cube(a)
print("le cube vaut", v)
_________________________________________________________
65 Programmation en Python Pr. M. Zbakh
Modules et importations
Package
Quand on a un grand nombre de modules, il peut être intéressant de les organiser dans des
dossiers. Un dossier qui rassemble des modules est appelé un package (paquetage en
français). Le nom du package est le même que celui du dossier. Par exemple, on crée un
dossier package1 dans lequel on place le fichier module1.py suivant :
def fonction1(a):
return a**2
import package1.module1
u = package1.module1.fonction1(3)
print ("u vaut", u)
_________________________________________________________
66 Programmation en Python Pr. M. Zbakh
Modules et importations
def carre(valeur):
resultat = valeur**2
return resultat
if __name__ == "__main__":
a = 3
print("le carre vaut", carre(a))
On peut lancer une exécution directe en tant que script et on obtient alors :
le carre vaut 9
_________________________________________________________
67 Programmation en Python Pr. M. Zbakh
Modules et importations
Ou bien on peut importer puissance2 en tant que module, par exemple dans le fichier suivant :
b = 4
print("le carre vaut", pu2.carre(b))
le carre vaut 16
_________________________________________________________
68 Programmation en Python Pr. M. Zbakh
Tracé de courbes
Pour tracer des courbes, Python n’est pas suffisant et nous avons besoin de la
bibliothèque Matplotlib utilisée dans ce cours.
Quel que soit le style de programmation, il est nécessaire d’importer le module pyplot de
matplotlib.
_________________________________________________________
69 Programmation en Python Pr. M. Zbakh
Installation de NumPy et de Matplotlib
Vous allez ouvrir la fenêtre noire du DOS et passer une commande d'installation de NumPy.
Cette fenêtre permet de passer toutes sortes de commande en court-circuitant Windows. Elle
est réservée aux initiés, car une commande malencontreuse pourrait endommager tout le
système.
_________________________________________________________
70 Programmation en Python Pr. M. Zbakh
Tracé de courbes
Utilisation de plot()
L’instruction plot() permet de tracer des courbes qui relient des points dont les abscisses et
ordonnées sont fournies en arguments.
Exemple 1
import numpy as np
import matplotlib.pyplot as plt
_________________________________________________________
71 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
72 Programmation en Python Pr. M. Zbakh
Tracé de courbes
Exemple 2
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y)
_________________________________________________________
73 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
74 Programmation en Python Pr. M. Zbakh
Tracé de courbes
Dans le style pyplot, il est possible fixer les domaines des abscisses et des ordonnées en
utilisant les fonctions xlim(), ylim() ou axis().
xlim(xmin, xmax)
ylim(ymin, ymax)
axis() permet de fixer simultanément les domaines des abscisses et des ordonnées.
Note
Avec axis(), les limites du domaine doivent être données dans une liste où les valeurs sont
entourées par des crochets [ et ].
_________________________________________________________
75 Programmation en Python Pr. M. Zbakh
Tracé de courbes
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.xlim(-1, 5)
plt.show()
_________________________________________________________
76 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
77 Programmation en Python Pr. M. Zbakh
Tracé de courbes
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.ylim(-2, 2)
plt.show()
_________________________________________________________
78 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
79 Programmation en Python Pr. M. Zbakh
Tracé de courbes
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.axis([-1, 5, -2, 2])
plt.show()
_________________________________________________________
80 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
81 Programmation en Python Pr. M. Zbakh
Tracé de courbes
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.title("Fonction cosinus")
plt.show()
_________________________________________________________
82 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
83 Programmation en Python Pr. M. Zbakh
Tracé de courbes
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y, label="cos(x)")
plt.legend()
plt.show()
_________________________________________________________
84 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
85 Programmation en Python Pr. M. Zbakh
Tracé de courbes
Avertissement
Pour faire afficher le label, il ne faut pas oublier de faire appel à l’instruction legend()
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.xlabel("abscisses")
plt.ylabel("ordonnées")
plt.show()
_________________________________________________________
86 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
87 Programmation en Python Pr. M. Zbakh
Tracé de courbes
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y1)
plt.plot(x, y2)
plt.show()
_________________________________________________________
88 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
89 Programmation en Python Pr. M. Zbakh
Tracé de courbes
import numpy as np
import matplotlib.pyplot as plt
plt.show()
_________________________________________________________
90 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
91 Programmation en Python Pr. M. Zbakh
Tracé de courbes
Formats de courbes
Il est possible de préciser la couleur, le style de ligne et de symbole (« marker ») en ajoutant
une chaîne de caractères de la façon suivante :
import numpy as np
import matplotlib.pyplot as plt
plt.show()
_________________________________________________________
92 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
93 Programmation en Python Pr. M. Zbakh
Tracé de courbes
Formats de courbes
Il est possible de préciser la couleur, le style de ligne et de symbole (« marker ») en ajoutant
une chaîne de caractères de la façon suivante :
Chaîne Effet
- ligne continue
-- tirets
: ligne en pointillé
-. tirets points
Avertissement
Si on ne veut pas faire apparaître de ligne, il suffit d’indiquer un symbole sans préciser un style
de ligne.
_________________________________________________________
94 Programmation en Python Pr. M. Zbakh
Tracé de courbes
Exemple
import numpy as np
import matplotlib.pyplot as plt
plt.show()
_________________________________________________________
95 Programmation en Python Pr. M. Zbakh
Tracé de courbes
_________________________________________________________
96 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Nous allons voir comment créer des tableaux avec la fonction numpy.array() de NumPy.
Ces tableaux pourront être utilisés comme des vecteurs ou des matrices grâce à des fonctions
de NumPy :
• numpy.dot(),
• numpy.linalg.det(),
• numpy.linalg.inv(),
• numpy.linalg.eig(),
• etc.
_________________________________________________________
97 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Tableaux - numpy.array()
Pour créer un tableau 1D, il suffit de passer une liste de nombres en argument
de numpy.array(). Un liste est constituée de nombres séparés par des virgules et
entourés de crochets ([ et ]).
import numpy as np
a = np.array([4,7,9])
print(a)
#[4, 7, 9]
_________________________________________________________
98 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Pour créer un tableau 2D, il faut transmettre à numpy.array() une liste de listes grâce à des
crochets imbriqués.
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
#[[1, 2, 3],
# [4, 5, 6]]
_________________________________________________________
99 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
La fonction numpy.size()
import numpy as np
a = np.array([2,5,6,8])
print(np.size(a))
#4
b = np.array([[1, 2, 3],
[4, 5, 6]])
print(np.size(b))
#6
_________________________________________________________
100 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
La fonction numpy.shape()
La fonction numpy.shape() (forme, en anglais) renvoie la taille du tableau.
.
import numpy as np
a = np.array([2,5,6,8])
print( np.shape(a))
#(4,)
b = np.array([[1, 2, 3],
[4, 5, 6]])
print(np.shape(b))
#(2, 3)
_________________________________________________________
101 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Il est possible de réaliser la somme de deux matrices avec l’opérateur *. Il faut dans ce cas que
les deux tableaux aient la même taille.
.
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6]])
b = np.array([[2, 1, 3],
[3, 2, 1]])
print(a+b)
#[[ 2, 2, 9],
# [12, 10, 6]])
_________________________________________________________
102 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Il est possible de réaliser un produit terme à terme grâce à l’opérateur *. Il faut dans ce cas
que les deux tableaux aient la même taille.
.
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6]])
b = np.array([[2, 1, 3],
[3, 2, 1]])
print(a*b)
#[[ 2, 2, 9],
# [12, 10, 6]])
_________________________________________________________
103 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Un tableau peut jouer le rôle d’une matrice si on lui applique une opération de calcul
matriciel. Par exemple, la fonction numpy.dot() permet de réaliser le produit matriciel..
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6]])
b = np.array([[4],
[2],
[1]])
print(np.dot(a,b))
# [[11],
# [32]]
_________________________________________________________
104 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Produit matriciel - @
A partir de la version 3.5 de Python, il est également possible d’effectuer le produit matriciel
en utilisant @.
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6]])
b = np.array([[4],
[2],
[1]])
print(a@b)
# [[11],
# [32]]
_________________________________________________________
105 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Transposé - .
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6]])
print(a.T)
#[[1, 4],
# [2, 5],
# [3, 6]]
_________________________________________________________
106 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
import numpy as np
print(np.conj(u))
_________________________________________________________
107 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
import numpy as np
print(np.conj(u).T)
_________________________________________________________
108 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Tableaux et slicing
Lors de la manipulation des tableaux, on a souvent besoin de récupérer une partie d’un
tableau. Pour cela, Python permet d’extraire des tranches d’un tableau grâce une technique
appelée slicing (tranchage, en français). Elle consiste à indiquer entre crochets des indices
pour définir le début et la fin de la tranche et à les séparer par deux-points :.
import numpy as np
# [25, 34]
_________________________________________________________
109 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Remarque
Dans la tranche [n:m], l’élément d’indice n est inclus, mais pas celui d’indice m. Un moyen
pour mémoriser ce mécanisme consiste à considérer que les limites de la tranche sont définies
par les numéros des positions situées entre les éléments, comme dans le schéma ci-dessous :
_________________________________________________________
110 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
import numpy as np
print(a[:3])
print(a[:])
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6]])
print(a[0,1])
#2
print(a[:,1:3])
# [[2, 3],
# [5, 6]]
print(a[:,1])
#[2, 5])
print(a[0,:])
#[1, 2, 3]
_________________________________________________________
112 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Avertissement
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6]])
print(a[:,1:2])
#[[2],
# [5]]
_________________________________________________________
113 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Tableaux de 0 - numpy.zeros()
print(np.zeros(3)) print(np.zeros((2,3)))
_________________________________________________________
114 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
print(np.ones(3))
import numpy as np
#[ 1., 1., 1.])
print(np.eye(3))
print(np.ones((2,3)))
#[[ 1., 0., 0.],
#[[ 1., 1., 1.], # [ 0., 1., 0.],
# [ 1., 1., 1.]] # [ 0., 0., 1.]]
_________________________________________________________
115 Programmation en Python Pr. M. Zbakh
Tableaux et calcul matriciel avec NumPy
Exercice
_________________________________________________________
116 Programmation en Python Pr. M. Zbakh
Algèbre linéaire
Déterminant - numpy.linalg.det()
import numpy as np
a = np.array([[1, 2],
[3, 4]])
print(det(a))
#-2.0
_________________________________________________________
117 Programmation en Python Pr. M. Zbakh
Algèbre linéaire
Inverse - numpy.linalg.inv()
import numpy as np
a = np.array([[1, 3, 3],
[1, 4, 3],
[1, 3, 4]])
print(inv(a))
_________________________________________________________
118 Programmation en Python Pr. M. Zbakh
Algèbre linéaire
import numpy as np
Pour vérifier que la solution est
a = np.array([[3,1], [1,2]])
correcte :
b = np.array([9,8])
import numpy as np
x = np.linalg.solve(a, b) np.allclose(np.dot(a, x), b)
#True
print(x)
#[ 2., 3.]
_________________________________________________________
119 Programmation en Python Pr. M. Zbakh
Algèbre linéaire
Valeurs propres et vecteurs propres - numpy.linalg.eig()
import numpy as np
D, V = eig(A)
print(D)
#[ 2., 1., -1.])
print(V)
import numpy as np
u = np.arange(1, 16)
print(u)
# [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
print(np.shape(u))
#(15,)
u.shape = (3, 5)
print(u)
#[[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
print(np.shape(u))
#(3, 5)
_________________________________________________________
121 Programmation en Python Pr. M. Zbakh
Algèbre linéaire
Obtention d’un tableau 2D ligne ou colonne
import numpy as np
a = np.arange(1, 6)
print(a)
# [1, 2, 3, 4, 5]
a.shape = (1, np.size(a))
print(a)
#[[1, 2, 3, 4, 5]]
a.shape = (np.size(a), 1)
print(a)
# [[1],
[2],
[3],
[4],
[5]]
_________________________________________________________
122 Programmation en Python Pr. M. Zbakh