Vous êtes sur la page 1sur 26

Pyhton avancé

Ahmed SEJAD
ahmed.sejad@esp.mr

Ecole Superieure Polytechnique


Institut Superieur des Métiers de l’Energie (ISME)

24 octobre 2021

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les listes

Une liste est une suite ordonnée d’objets (valeurs), pouvant être de
type différent. Ces objets peuvent éventuellement être eux-mêmes
des listes (listes imbriquées). Ils peuvent même être égaux à la liste
globale (définition récursive).

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les listes

L’accès à un élément d’une liste est direct. L’indexation des


éléments commence à 0.

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les listes

On peut aussi accéder aux éléments par indexation négative. Le


dernier élément de la liste est alors numéroté -1. Avec la liste de
l’exemple précédent, on obtient par exemple : 0.

Cette possibilité est surtout intéressante pour accéder aux derniers


éléments d’une liste.

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les listes
Voici une liste des opérations et méthodes les plus utilisées sur les listes. Pour une liste
plus exhaustive, utilisez help(list). On indique par un (m) le fait que la méthode
modifie directement la liste sur laquelle elle agit. Les autres retourne le résultat en
sortie de fonction.

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les listes

Le tri d’une liste :


Il possède deux paramètres : un qui permet de préciser si le tri est
croissant ou décroissant, l’autre qui permet de définir une clé de tri
(une fonction : on trie alors la liste suivant les valeurs que la
fonction prend sur les éléments de la liste)

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les listes
Slicing :
Il s’agit simplement de l’extraction d’une tranche de la liste, en
précisant un indice initial et un indice final. On peut définir un pas
p, ce qui permet de n’extraire qu’un terme sur p (par exemple les
termes d’indice pair ou impair en prenant p = 2)

Si le premier indice est omis, il est pris égal à 0 par défaut.


Si le deuxième indice est omis, il est pris égal à la longueur de
la liste par défaut (on extrait la tranche finale)
Si le troisième indice est omis, il est pris égal à 1 par défaut
(cas de la première instruction ci-dessus)
Un pas négatif permet d’inverser l’ordre des termes
Le slicing est possible aussi avec des indexations négatives.
Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé
Les listes

Exemple :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les ensembles

La structure d’ensemble (set) ressemble à celle de liste, mais sans


ordre défini sur les ensembles, et sans répétition possible des
éléments.

Attention, {} désigne non pas l’ensemble vide, mais le dictionnaire


vide

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les ensembles

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les tuples
Les tuples sont des n-uplets. Ils sont notés entre parenthèses :

Contrairement à une liste, ils ont une taille fixée (aucune méthode
ne peut ajouter une coordonnée en place). On peut accéder à une
coordonnée par indexation, mais pas la modifier :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les tuples

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les dictionnaires
Un dictionnaire en Python va aussi permettre de rassembler des éléments mais ceux-ci
seront identifiés par une clé. On peut faire l’analogie avec un dictionnaire de français
où on accède à une définition avec un mot.
Contrairement aux listes qui sont délimitées par des crochets, on utilise des accolades
pour les dictionnaires.
Dictionnaires : Collection de couples clé : valeur entourée d’accolades.

Un élément a été défini ci-dessus dans le dictionnaire en précisant une clé au moyen
d’une chaı̂ne de caractères suivie de : puis de la valeur associée (clé : valeur)
On accède à une valeur du dictionnaire en utilisant la clé entourée par des crochets
avec la syntaxe suivante :

Remarques :
On les appelle aussi ”tableaux associatifs” ;
Les indices sont appelés ”clés”. ;
d[Nom] affiche l’élément dont la clé est Nom ;
d.keys() affiche les clés ;
d.items() affiche les éléments du dictionnaire.
Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé
Les chaı̂nes de caractères
Il s’agit d’un assemblage non interprété de caractères.

L’accès à un caractère d’une chaı̂ne se fait par indexation de la


même manière que pour les listes. Le premier caractère est indexé
par 0. Les indexations négatives sont possibles dans la même
mesure que pour les listes.

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les chaı̂nes de caractères

Les slicings peuvent se faire également sur les chaı̂nes de


caractères, de la même manière que pour les listes :

Une liste (non exhaustive) des opérations et méthodes les plus


utiles. Voir help(str) pour (beaucoup) plus.

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les chaı̂nes de caractères

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


La récursivité

Une fonction récursive est une fonction qui s’appelle elle-même.


Exemple :

Résultat :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les fichiers
Une grande partie de l’information en physique-chimie est stockée
sous forme de texte dans des fichiers. Pour traiter ces informations,
vous devez le plus souvent lire ou écrire dans un ou plusieurs
fichiers. Python possède pour cela de nombreux outils qui vous
simplifient la vie.
1 Lecture dans un fichier :

Méthode readlines() :
Avant de passer à un exemple concret, créez un fichier dans
un éditeur de texte que vous enregistrerez dans votre
répertoire courant avec le nom test.txt et le contenu suivant :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les fichiers
La fonction readlines de Python lit tout le contenu du fichier texte
et les place dans une liste de lignes.
Exemple complet de lecture d’un fichier avec Python :

Résultat :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les fichiers
Méthode readline() :
La méthode readline() (sans s à la fin) lit une ligne d’un fichier et
la renvoie sous forme de chaı̂ne de caractères. À chaque nouvel
appel de readline(), la ligne suivante est renvoyée. Associée à la
boucle while, cette méthode permet de lire un fichier ligne par
ligne.

Résultat :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les fichiers

2 Écriture dans un fichier :


Écrire dans un fichier est aussi simple que de le lire. Voyez
l’exemple suivant :

Résultat :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Les fichiers
Quelques focntions sur les fichiers :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Le module Numpy
Les tableaux avec Numpy :
Le module Numpy permet la création et la manipulation de tableaux (vecteurs) dans
Python.
1 Importation du module Numpy

Le module numpy est importé avec l’alias np qui est plus rapide à écrire à
chaque fois !
2 Création de tableaux
A partir d’une liste :

Résultat :

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Le module Numpy

A partir d’un intervalle et du nombre de d’éléments :


La méthode numpy.linspace() permet d’obtenir un tableau 1D allant d’une
valeur de départ à une valeur de fin avec un nombre donné d’éléments.

Résultat :

La fonction linspace(start,end, nb) génère n valeurs entre start et end.

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé


Le module Numpy
A partir d’un intervalle et d’un pas :

La fonction arange(a,b,p) construit un tableau Numpy de a à b (non compris)


avec un pas de p.
Résultat :

Créer un tableau vide : Il est parfois intéressant de créer un tableau vide (rempli
de zéros) dont les valeurs pourront être modifiées par la suite.

Résultat :

Ahmed SEJAD ahmed.sejad@esp.mr Figure


Pyhton avancé
Le module Numpy
3 Manipulation de tableaux :

Résultat :

Les opérations mathématiques se font itérativement sur les tableaux de type


Numpy. Ce n’est pas le cas avec les listes !
La plupart des opérateurs sont disponibles avec les tableaux Numpy !. Par contre,
il n’est pas possible d’appliquer les fonctions mathématiques du module math.
Le module Numpy intégre ses propres fonctions mathématiques comme
np.sqrt().

Ahmed SEJAD ahmed.sejad@esp.mr Pyhton avancé

Vous aimerez peut-être aussi