ENSET Mohammedia Année universitaire : 2022/2021
Initiation en Python
Plan :
Introduction
Les variables et principaux types de données
Contrôle du flux d'exécution
Instructions répétitives
Fonctions prédéfinies
Fonctions originales
Utilisation de fenêtres et de graphismes
Manipuler des fichiers
Les structures de données
Professeur : [Link] 1
ENSET Mohammedia Année universitaire : 2022/2021
I- Introduction:
Python est un langage de programmation créé par Guido Van Rossum en 1991.
Ce langage de programmation est relativement simple, et présente de nombreuses
caractéristiques intéressantes :
Multiplateforme, Langage Open Source,
Disponibilité de bibliothèques
Langage de haut niveau, interprété.
Orienté objet et très utilisé en analyse de données.
langages de différents niveaux
Chaque processeur possède un langage propre, directement exécutable :
Le langage machine : formé de 0 et de 1 et n’est pas portable.
Le langage d’assemblage : codage alphanumérique du langage machine, pas portable.
On le traduit en langage machine par un assembleur ;
Les langages de haut niveau : Souvent normalisés, ils permettent le portage d’une
machine à l’autre. Ils sont traduits en langage machine par un compilateur ou un
interpréteur.
II- Les variables et principaux types de données :
1-Définition:
Une variable est une chaîne de caractères (un mot) qui doit commencer par une lettre,
sans espaces, en évitant les accents et caractères spéciaux.
En Python il n’est pas nécessaire de déclarer les variables ni leurs types avant de pouvoir
leur affecter une valeur (typage dynamique). Pour connaître le type d’une donnée ou le
type de la valeur d’une variable, il suffit d’utiliser la fonction type().
Le type int (entier): utilisé pour stocker un entier.
Le type float (flottant): utilisé pour stocker des nombres à virgule flottante.
Le type str (chaîne de caractères): nous pouvons créer simplement en joignant
caractères entre guillemets ou apostrophes.
Professeur : [Link] 2
ENSET Mohammedia Année universitaire : 2022/2021
Le type complex : la partie imaginaire est indiquée grâce à la lettre « j » ou « J ».
Le type bool (booléen) : prendre les valeurs True ou False.
Le type list (liste) : on peut définir une liste comme une collection d’éléments séparés par
des virgules, l’ensemble étant enfermé dans des crochets.
2-Exemple:
Console lors de l’appel des variables
Entier Flottant String Complexe Booléen Liste
3-Remarques:
- Majuscules et minuscules sont différentes dans python.
- Il ne faut surtout pas utiliser de nom de fonctions python comme noms de variables.
Les mots réservés de Python
and del from None True as elif global else
try if not while in class pass yield raise
import break except or with is def for lambda
False continue finally return assert nonlocal
- Affectations multiples: Sous Python, on peut assigner une valeur à plusieurs variables
simultanément.
Quelques opérateurs :
Opérateur Description Opérateur Description
+ Concatenation - Addition == Vérifie si égale
- Soustraction != Vérifie si différent
* Repetition - Multiplication > Supérieur
/ Division < Inférieur
% Modulo >= Supérieur ou égale
** Exposent <= Inférieur ou égale
// Division entière += c += a → c=c+a
= affectation -= c -= a → c=c-a
== Vérifie si égale *= c *= a → c=c*a
!= Vérifie si différent /= c /= a → c=c/a
and Conjonction %= c %= a → c=c%a
or Disjonction **= c **= a → c = c ** a
not Négation //= c //= a → c = c // a
Professeur : [Link] 3
ENSET Mohammedia Année universitaire : 2022/2021
Quelques règles:
Les variables globales:
- Définies avant d'appeler une fonction, sont lisibles lors de l'exécution de la fonction.
- Elles ne peuvent être modifiées qu'en agissant sur l'objet par un mot-clé ou par une
méthode.
Les variables locales :
- Définies dans une fonction, sont supprimées après l'exécution de la fonction.
On peut transformer des variables locales en variables globales (à l'aide de global) pour les
modifier lors de l'exécution d'une fonction (cf. exemples sur les fonctions).
III- Entrée-Sortie:
Pour afficher un message, il suffit d’utiliser la fonction .
Il est possible de combiner plusieurs message, soit en créant une variable concaténée
(+), ou en utilisant des virgules entre chaque type de caractère :
1-Exemples :
Pour inviter l'utilisateur à entrer des caractères en utilise la fonction input ().
IV- Contrôle du flux d'exécution :
L'exécution en python se fait par défaut de manière séquentielle. Cependant on peut agir
sur ce déroulement pour réaliser des alternatives ou des répétitions.
Le principe est de réaliser une ou plusieurs opérations si une condition est vraie, et
éventuellement d’autres opérations si la condition est fausse, voire même différente.
Professeur : [Link] 4
ENSET Mohammedia Année universitaire : 2022/2021
1-L’indentation :
Les fonctions Python n’ont pas de begin ou end explicites, ni d’accolades qui pourraient
marquer là où commence et où se termine le code de la fonction. Le seul délimiteur est les
deux points ( : ) et l’indentation du code lui-même.
La syntaxe:
if Condition_1 :
opérations à effectuer si Condition_1 vaut True
opérations à effectuer si Condition_1 vaut True
elif Condition_2 : # Optionnel
opérations à effectuer si Condition_2 vaut True
opérations à effectuer si Condition_2 vaut True
else : # Optionnel
opérations à effectuer si ni Condition_1, ni Condition_2 ne sont
vérifiées
opérations à effectuer si ni Condition_1, ni Condition_2 ne sont
vérifiées
# Suite du programme
2-Remarques
- Ceci n’est pas une boucle, elle est exécutée puis le programme continue.
- Dès qu’une condition est vérifiée, les opérations associées sont exécutées et on sort du
bloc.
3-Exemples :
4-Applications :
1- Écrivez un programme pour trouver un maximum entre trois nombres.
2- Écrivez un programme pour vérifier si un nombre est pair ou impair.
3- Ecrire un programme qui demande la saisit de la température d’une eau, puis affiche
son état.
Soit T, la température d’une eau, Alors son état est :
• Si T ≤ 0 : C’est de la glace
• Si 0 < T ≤ 25 : C’est confortable
• Si 25 < T ≤ 100 : C’est chaud
Professeur : [Link] 5
ENSET Mohammedia Année universitaire : 2022/2021
• Sinon (t > 100) : C’est de la vapeur
4- Saisissez un flottant. S’il est positif ou nul, affichez sa racine, sinon affichez un message
d’erreur.
V- Instructions répétitives :
1-Boucles for:
Le principe est de réaliser une ou plusieurs opérations pour une variable allant d’une
valeur à une autre, le nombre d’itérations est connu d’avance.
La syntaxe :
for i in range(n):
opérations à effectuer
opérations à effectuer i varie du 0 à n-1
opérations à effectuer Il y a n étapes
opérations à effectuer
opérations à effectuer
1-1 Exemples :
for i in range(0,n) : # parcourt tous les entiers de 0 à n-1 inclus
for i in range(n,0,-1) : # parcourt tous les entiers de n à 1 inclus
for i in range(2,200,4) : # parcourt tous les entiers de 2 à 200 avec un pas de 4
for e in li : # parcourt tous les éléments de la liste li
1-2 Remarques :
Les valeurs de i sont imposées par le for et augmentent toutes seules. Inutile donc de
l’initialiser avant la boucle, elle sera remplacée :
Il est inutile de l’augmenter :
On peut stopper une boucle for avec la commande « break » :
1-3 Applications :
1-Réaliser un programme qui affiche la table de multiplication de 1 à 12.
2- proposer un programme qui calcule le factoriel du nombre saisi par l’utilisateur. -
3- La suite de Fibonacci est une suite de nombres entiers de 0, 1, 1, 2, 3, 5, 8 ….
Les deux premiers termes sont 0 et 1. Tous les autres termes sont obtenus en ajoutant les
deux termes précédents.
Proposer un programme qui donne les termes selon la valeur introduite par
l’utilisateur.
Professeur : [Link] 6
ENSET Mohammedia Année universitaire : 2022/2021
4- Que font les programmes ci-dessous :
2- Boucle while :
En général, si on connaît avant de démarrer la boucle le nombre d’itérations à exécuter, on
choisit une boucle for. Le while est utilisé lorsque l’on ne connait pas à priori le nombre
d’itérations à effectuer (simulation numérique jusqu’à une valeur d’un paramètre, recherche
dans une liste jusqu’à obtenir l’élément voulu etc).
La syntaxe :
Initialisation de la condition
while Condition :
opérations à effectuer
opérations à effectuer
opérations à effectuer
opérations à effectuer
opérations à effectuer
Modification de la condition
# Suite du programme
2-1 Remarques :
• La variable évaluée dans la condition doit exister au préalable.
• Si la condition est fausse au départ, le corps de la boucle n’est jamais exécuté.
• Si la condition reste toujours vraie, alors le corps de la boucle est répète indéfiniment.
2-2 Exemples :
1- Quel est le résultat attendu après l'exécution de chaque programme:
1 2 3
i=1 i = -2 n = int(input())
while i <= 10: while i <= 10: length = 0
print(i ** 2) print(i) while n != 0:
i += 1 i += 1 length += 1
else: n //= 10
print('Fin de la boucle, i =', i) print('Length is', length)
2-3 Applications :
1- Ecrire un programme qui permet de calculer la moyenne de notes fournies au clavier
(Le nombre des notes n’est pas connu):
VI- Les fonctions:
1. Les fonctions prédéfinies :
Les fonctions prédéfinies proviennent de deux sources différentes :
soit des fonctions faisant partie intégrante du langage Python comme print, input,
type, len et str…;
Professeur : [Link] 7
ENSET Mohammedia Année universitaire : 2022/2021
Liste des fonctions prédéfinies Python 3.7
abs() delattr() hash() memoryview( set() round() locals()
all() dict() help() min()
) setattr() max() getattr()
any() dir() hex() next() slice() hasattr() classmethod()
ascii() divmod() id() object() sorted() complex() repr()
bin() enumerat input() oct() staticmethod( import() vars()
bool() eval()
e() int() open() str()
) reversed() range()
breakpoint() exec() isinstance() ord() sum() map() list()
bytearray() filter() issubclass() pow() super() globals() frozenset()
bytes() float() iter() print() tuple() compile() chr()
callable() format() len() property() type() zip()
Pour avoir plus de détails sur une fonction il suffit de taper help (fonction) exemple :
soit des fonctions ayant été écrites par d'autres programmeurs et mises à disposition
en important le module qui les contient, comme la fonction sqrt du module math, par
exemple.
Pour importer un module de fonctions :
Importer le contenu d’un Importer une partie d’un Importer tout un module
module module
import math from math import sqrt from math import *
a=900 a=900 a=900
b = [Link](a) b = sqrt(a) b = sqrt(a)
print(b) print(b) print(b)
L’appel des fonctions diffère en fonction de la façon dont on les importe:
import module : les fonctions du module devront être appelées
par [Link]()
import module as alias : les fonctions du module devront être appelées
par [Link]()
Dans les autres cas, on n'a pas besoin d'utiliser le préfixe du module et l'on peut
directement utiliser le nom de la fonction ou de l'alias.
Exemple de syntaxe :
Professeur : [Link] 8
ENSET Mohammedia Année universitaire : 2022/2021
Module mathématique : math et cmath
Le module math contient les fonctions mathématiques permettant d'effectuer les calculs
scientifiques de base, et le module cmath reprend la plupart des fonctions du module math
pour les nombres complexes:
pi, e, log, log10, exp, sqrt, cos(), sin(), tan(), acos(), asin(), atan(), cosh(), sinh(), tanh(),
acosh(), asinh(), atanh().
2. Les fonctions originales :
Une fonction est un ensemble d’instructions regroupées sous un nom et s’exécutant à la
demande, Elle peut exécuter une ou plusieurs opérations en prenant ou non des arguments
en entrée, et en renvoyant ou non des variables en sortie.
Pour définir une fonction, on écrit la première ligne suivante :
def Nom_Fonction(Argument_1, Argument_2,…,Argument_n):
Les variables définies dans une fonction sont des variables locales, on utilise l’instruction
global() pour la rendre globale.
2.1 Exemples :
Fonction simple sans paramètres :
def bonjour():
print('Bonjour tout le monde')
bonjour()
Fonction avec paramètre :
from math import sqrt
def carre(x):
return x**2
def cube(x):
return x ** 3
def racine(x):
return sqrt(x)
print('Veuillez introduire un nombre positif')
x=int(input())
print('Le carre de x est',carre(x))
print('Le cube de x est',cube(x))
print('La racine de x est',racine(x))
Fonction avec plusieurs paramètres :
def tableMulti(base, debut, fin) :
print ('Fragment de la table de multiplication par', base, ':')
n = debut
while n <= fin :
print (n, 'x', base, '=', n * base)
n = n +1
tableMulti(8, 7, 15)
Professeur : [Link] 9
ENSET Mohammedia Année universitaire : 2022/2021
2.2 Applications :
1- Proposer une fonction qui retourne les éléments de la suite de Fibonacci.
2- Proposer une fonction qui calcule et retourne le volume d’une sphère.
3- Proposer une fonction qui nous donne les solutions d’une équation 2nd ordre.
VII- Utilisation de fenêtres et de graphismes :
Pour tracer des courbes sous Python on a besoin d’avoir deux listes, l’une pour les
abscisses, l’autre pour les ordonnées.
Pour tracer des courbes, il est nécessaire d’importer la librairie associée en écrivant :
import [Link] as plt
1. Exemples :
1er méthode :
import numpy as np
import [Link] as plt
x = [Link](0.0, 8.0,200)
y1 = [Link](2 * [Link] * x) * [Link](-x)
y2 = [Link](-x)
y3=y1-y2
[Link](2,1,1)
[Link](x, y1, 'r',x,y2)
[Link]('system 1er ordre et 2nd ordre')
[Link]('Exemple pour subplots')
[Link](2,1,2)
[Link](x, y3, '--y')
[Link]('time (s)')
[Link]('Error')
[Link]()
2nd méthode orienté objet :
import numpy as np
import [Link] as plt
x = [Link](0.0, 8.0,200)
y1 = [Link](2 * [Link] * x) * [Link](-x)
y2 = [Link](-x)
y3=y1-y2
fig, (ax1, ax2) = [Link](2, 1)
[Link]('Exemple pour subplots')
[Link](x, y1, 'r',x,y2)
ax1.set_ylabel('system 1er ordre et 2nd ordre')
[Link](x, y3, '--y')
ax2.set_xlabel('time (s)')
ax2.set_ylabel('Error')
[Link]()
Professeur : [Link] 10
ENSET Mohammedia Année universitaire : 2022/2021
2. Les options :
Il existe une multitude d’options permettant de changer les couleurs, styles de traits,
épaisseurs, titres des graphiques, titres des axes etc… Voyons ici les plus importants.
Lors de la création du plot, on peut préciser :
[Link](X, Y, linewidth=2.0) règle l’épaisseur du trait
[Link](X, Y, 'ro') Crée un nuage de points
[Link](X, Y, '--') trait en pointillés
couleur associée à la courbe
[Link](X,Y,'r') b: blue - g: green - r: red - c: cyan - m: magenta - y: yellow - k: black -
w: white
[Link](X,Y,label="Texte") Ajout d’une légende
[Link]()
[Link](X, Y, '--r') Pointillés rouges
[Link](,) intervalle des abscisses
[Link](,) intervalle des ordonnées
[Link]([, , , ]) Définit l’intervalle de la figure
[Link](True) Affiche la grille
[Link]('Texte') Définit un titre
[Link]('Texte') nom des données en abscisses
[Link]('Texte') nom des données en ordonnée
[Link]() Affiche le graphique
[Link]() Ferme la figure
[Link]('all') Ferme toutes les figures
Vide la dernière figure créée/appelée/ouverte sans la fermer
[Link]() (lors d’une simulation, il est beaucoup plus rapide de vider que de
fermer/ouvrir)
[Link](n) Permet d’attendre par exemple n secondes avant de continuer
Enregistrement dans le répertoire courant des figures au format
[Link]('Nom')
standard
[Link] :
1-Représenter sur 6 graphes dans une figure subdivisée en 6, les fonctions cosx, sinx,
sincx, coscx, exp(x), ln(x), pour chaque figure ajouter les informations utiles.
2- Pour les mêmes fonctions et sur la même figure cette fois ci, proposer une méthode pour
la représentation.
4. le package Numpy :
Numpy est la librairie qui offre la pièce fondamentale pour faire du calcul scientifique avec
Python.
Elle étend les capacités de Python pour travailler sur des tableaux et matrices
à n dimensions de façon bien plus optimisée et offre des fonctions mathématiques de haut
niveau sur ces objets.
Pour importer ce package il suffit de taper le code suivant :
import numpy as np
Les tableaux peuvent être créés avec [Link](). On utilise des crochets pour délimiter
les listes d’éléments dans les tableaux.
Professeur : [Link] 11
ENSET Mohammedia Année universitaire : 2022/2021
4.1 Quelques constructeurs Numpy :
[Link](shape)
[Link](shape)
La fonction [Link]()
La fonction [Link]() :
[Link](d0, d1, ..., dn)
Retourne un ndarray avec la géométrie définie par les
arguments contenant des valeurs aléatoires de
distribution uniforme [0, 1) (0 <= x < 1).
d0, d1, …, dn : les dimensions pour chaque
axe.
[Link](d0, d1, ..., dn)
Retourne un ndarray avec la géométrie
définie par les arguments contenant des
valeurs aléatoires de distribution gaussienne
(moyenne de 0 et variance de 1).
[Link](low, high=None,
size=None, dtype='l')
Retourne un ndarray avec la géométrie définie par
size contenant des valeurs entières aléatoires de
distribution discrete uniforme.
a) Indexing et Slicing:
Il est possible d’accéder à un élément ou un ensemble d’éléments à l’intérieur d’un ndarray
avec l’indexing et le slicing. Cela se fait en donnant le/les index entre [].
Professeur : [Link] 12
ENSET Mohammedia Année universitaire : 2022/2021
Lorsque la valeur est positive, on indexe depuis le début du ndarray, lorsqu’elle est
négative, depuis la fin.
Pour un ndarray à multiple dimensions, on sépare chaque index (ou slice) avec une ,
Pour faire du slicing, on va donner 2 ou 3 valeurs, séparées d’un :. Cela sera [start:end] ou
[start:end:step]
start : position de départ (commence par 0 depuis la gauche, et par -1 depuis la droite)
end : position de fin (non-inclue)
step : pas sur l’index (peut être négatif pour aller de droite à gauche)
Cas particulier, on peut demander la totalité avec le simple caractère :
Applications :
1- Générer puis afficher une matrice 6*6 d’éléments aléatoires de 1 à 30 :
- Afficher tous les éléments de la 1er ligne.
- Afficher tous les éléments de la 1er colonne.
- Les deux dernières lignes.
- Les deux dernières colonnes.
- Affecter la valeur 100 à toutes les valeurs supérieures à 25
- Effectuer différentes calcules matricielle sur votre matrice.
- Réaliser les transformations suivantes :
4. le
5. Le package control :
La librairie contrôle de Python (python-control) est un package Python qui implémente des
opérations de base pour l'analyse et la conception et le contrôle des systèmes
automatique.
Pour importer ce package il suffit de taper le code suivant :
from [Link] import *
System creation
ss(*args) Create a state space system.
tf(*args) Create a transfer function system.
Professeur : [Link] 13
ENSET Mohammedia Année universitaire : 2022/2021
Frequency domain plotting
bode(syslist[, omega, dB, Hz, deg, Plot]) Bode plot for a system
bode_plot(syslist[, omega, dB, Hz, deg, Plot]) Bode plot for a system
nyquist(syslist[, omega, Plot, color, labelFreq]) Nyquist plot for a system
nyquist_plot(syslist[, omega, Plot, color, ...]) Nyquist plot for a system
nichols(syslist[, omega, grid]) Nichols plot for a system
nichols_plot(syslist[, omega, grid]) Nichols plot for a system
Time domain simulation
impulse_response(sys[, T, X0, input, ...]) Impulse response of a linear system
step_response(sys[, T, X0, input, output, ...]) Step response of a linear system
Block diagram algebra
series(sys1, sys2) Return the series connection sys2 * sys1 for –> sys1 –> sys2 –>.
parallel(sys1, sys2) Return the parallel connection sys1 + sys2.
feedback(sys1[, sys2, sign]) Feedback interconnection between two I/O systems.
Control system analysis
dcgain(*args) Compute the gain of the system in steady state.
freqresp(sys, omega) Frequency response of an LTI system at multiple angular frequencies.
margin(*args) Calculate gain and phase margins and associated crossover frequencies
pole(sys) Compute system poles.
zero(sys) Compute system zeros.
pzmap(sys[, Plot, title]) Plot a pole/zero map for a linear system.
Exemple:
import numpy as np
import [Link] as plt
import control
G = [Link]([1,2],[3,5,1])
print(G)
mag,phase,omega = [Link](G)
Professeur : [Link] 14
ENSET Mohammedia Année universitaire : 2022/2021
6. Le package scipy :
Scipy est une librairie de calcul scientifique appliquer en (statistiques, optimisation,
intégration numérique, algèbre linéaire, transformée de Fourier, traitement du signal,
traitement d'images, intégration d'équations différentielles, fonctions spéciales), elle
s’appuie sur les structures de données de NumPy .
1. Exemple échantillonnage :
import numpy as np
import [Link] as plt
f=1
globals()
def signal(t):
return [Link](2 * [Link] * f*t )
D = 3/f
fe = 8*f
N = int(D * fe) + 1
te = [Link](0, (N-1)/fe, N)
t = [Link](0, D, 1000)
[Link](t, signal(t), 'b', label = "Signal reel")
[Link](te, signal(te), 'or--', label = "Signal echantillonne")
[Link]()
[Link]("Temps")
[Link]("Amplitude x(t)")
[Link]()
[Link]()
Repliement de spectre
Autre méthode :
from scipy import signal
import numpy as np
from matplotlib import pyplot as plt
f=1
l=1000
N=200
t = [Link](0, 5, l)
te=[Link](0, 5,N)
x = [Link](2*[Link]*f*t)
Professeur : [Link] 15
ENSET Mohammedia Année universitaire : 2022/2021
x_resampled = [Link](x, N)
[Link](t, x, 'b--', label='Original signal')
[Link](te, x_resampled, 'or', label='Resampled signal')
[Link]()
2. Transformée de Fourier :
from [Link] import fft
import numpy as np
import [Link] as plt
Fs=1000
t = [Link](0,0.5,1/Fs)
f=10
y = [Link](2*[Link]*f*t) +
2*[Link](10*[Link]*f*t)+4*[Link](6*[Link]*f*t)
yf = fft(y)
n=[Link](t)
fr=(Fs/2)*[Link](0,1,n//2)
[Link](2,1,1)
[Link](t,y)
[Link](2,1,2)
[Link](fr,2/Fs*abs(yf[0:[Link](fr)]))
[Link]()
[Link]()
Signal plus bruit
from [Link] import fft
import numpy as np
import [Link] as plt
Fs=1000
t = [Link](0,1,1/Fs)
f=10
y = [Link](2*[Link]*f*t)
x= 2*[Link](0, 0.1,[Link])
yx=x+y
xx=yx+0.2*[Link](2*49*[Link]*f*t)
[Link](2,1,1)
[Link](xx)
[Link](2,1,2)
yf = fft(xx)
n=[Link](t)
fr=(Fs/2)*[Link](0,1,n//2)
[Link](fr,2/Fs*abs(yf[0:[Link](fr)]))
[Link]()
[Link]()
Professeur : [Link] 16
ENSET Mohammedia Année universitaire : 2022/2021
Filtrage par application de la méthode booléen indexing;
from [Link] import fft,fftfreq
import numpy as np
import [Link] as plt
Fs=1000
t = [Link](0,1,1/Fs)
f=10
y = [Link](2*[Link]*f*t)
x=0.2*[Link](2*49*[Link]*f*t)
bb= 2*[Link](0, 0.1,[Link])
sig=x+y+bb
fourier=fft(sig)
fourier_1=2/Fs*[Link](fourier)
freq=Fs*fftfreq([Link])
[Link](2,1,1)
[Link](freq,fourier_1)
[Link](2,1,2)
fourier_1[fourier_1<0.3]=0
[Link](freq,fourier_1)
[Link]()
Filtrage par synthèse de filtre (voir TP)
7. Le package opencv :
OpenCV est une bibliothèque de fonctions de programmation principalement destinées à la
vision par ordinateur en temps réel. Nous pouvons faire du traitement d'images, de
l'apprentissage automatique, etc.
Lire une image :
[Link](/path/to/image, flag)
cv2.IMREAD_COLOR image en couleurs RGB .
cv2.IMREAD_GRAYSCALE grey image.
cv2.IMREAD_UNCHANGED image d‘origine
Lire et montrer une image :
import cv2
import [Link] as plt
img = [Link]('D:/[Link]')
img1 = [Link]('D:/[Link]',
cv2.IMREAD_GRAYSCALE)
print('color Image Dimensions :', [Link])
print('gray Image Dimensions :', [Link])
[Link]('image en couleur',img)
[Link](0)
Professeur : [Link] 17
ENSET Mohammedia Année universitaire : 2022/2021
[Link]()
[Link]('image en nuance de gris',img1)
[Link](0)
[Link]()
color Image Dimensions : (404, 647, 3)
gray Image Dimensions : (404, 647)
VIII. Manipuler des fichiers :
1 Lecture d’un fichier
1.1 Ouverture
Pour « ouvrir » un fichier texte sous python, on peut écrire :
fichier = open(Nom_Fichier, "r")
- L’option r veut dire « read ».
2 Lecture des lignes
2.1 Lecture ligne par ligne
On peut alors parcourir chacune des lignes du fichier à l’aide d’une boucle for ainsi :
for Ligne in fichier:
2.2 Lecture complète
Il est possible de récupérer directement une liste des lignes d’un fichier en écrivant :
Liste_Lignes = [Link]()
3 Fermeture
Après avoir lu un fichier texte, il faut le refermer sous Python avec la fonction « .close »:
[Link]()
IX. Les structures de données
Les structures de données les plus utilisées en python :
1. Tuple -> tuple
Séquence immuable hétérogène
Une fois créée, ne peut pas être mis à jour
Entouré de parenthèses plutôt que de crochets
a = (5, 6.54, "enset")
print(type(a))
<class 'tuple'>
2. String (chaîne de caractères) -> str (voir section II )
3. Intervalle -> range (voir section II )
4. Liste -> list (voir section II )
5. Dictionnaire -> dict
Le dictionnaire se crée sous Python à l’aide d’accolades : dico = { }
Professeur : [Link] 18
ENSET Mohammedia Année universitaire : 2022/2021
On peut initialiser le dictionnaire en le créant :
num = {'Lina':'065895','Said':'0783','Mourad':'02154'}
print(num)
print(type(num))
{'Lina': '065895', 'Said': '0783', 'Mourad': '02154'}
<class 'dict'>
Les clés du dictionnaire sont des chaines de caractères (prénoms) et les valeurs
correspondant aux numéros.
print(num['Lina'])
065895
Professeur : [Link] 19