Vous êtes sur la page 1sur 29

Plan

1. Rappels
Variables, structures conditionnelles, itératives
Les séquences : chaines, listes, tuples
Dictionnaires
2. Manipulation des fichiers texte
3. Les Fonctions
4. La Récursivité
4. Structures de données :piles, files
5. Introduction à la complexité
6. Algorithmes de tri (tri par insertion, tri par sélection, tri à bulles, tri par
fusion)

7.Graphique en Python
8. Méthodes numériques
9. Initiation à la programmation orientée objet
Mohamed Lamine Diakité 3
I. Historique de Python et pourquoi utiliser Python?
Historique
• Python : langage de programmation créé en 1989 par Guido van Rossum
(Pays-Bas)
• Le nom Python en hommage à une série télévisée Monty Python’s Flying
Circus
• La première version publique de ce langage a été publiée en 1991.
• La dernière version de Python est la version 3 (recommandée)
• Téléchargeable : https://www.python.org/downloads/

Mohamed Lamine Diakité 4


I. Historique de Python et pourquoi utiliser Python?
Caractéristiques de Python
• Gratuité : peut être installé sur plusieurs machines
• Multiplateforme : fonctionne sur plusieurs systèmes d’exploitation
(windows, Linux, Android, etc)
• Langage de haut niveau :
• La dernière version de Python est la version 3 (recommandée)
• Téléchargeable : https://www.python.org/downloads/

Mohamed Lamine Diakité 5


1. Rappels

Mohamed Lamine Diakité 6


1.1. Les variables
• En Python , les variables bénéficient d’un typage dynamique : le type est
détecté automatiquement lors de la création de la variable par affectation.
• Déclarer de la variable non nécessaire

• L’affectation est l’action consistant à donner une valeur à une variable

x = 16 # Affectation, la valeur 16 est donnée à x jusqu’à la prochaine modification


x = 1 + 2 # x vaut désormais 3
x = x + 2*x*x # x vaut désormais 21
Raccourcis pour certaines opérations

Exemples Mohamed Lamine Diakité 7


1.1. Les variables
• Chaque variable possède un type (nature de l’objet stocké) et un identifiant
(adresse mémoire)
• Principaux types

int # Entiers
float # Flottants (réels)
complex # Nombres complexes
bool # Booléens (True / False)
list # Listes
set # Ensembles
tuple # n-uplets
str # Chaînes de caractères (string)
function # Fonctions

Exemples
type( )
id( )

Mohamed Lamine Diakité 8


1.2. Les Structures conditionnelles
if - elif - else

if test1:
instructions1
elif test2:
instructions2
else:
instructions3

Mohamed Lamine Diakité 9


1.2. Les Structures conditionnelles
Les tests
x == y # égalité (double égalité)
x<y # infériorité stricte
x>y # supériorité stricte
x <= y # infériorité large
x >= y # supériorité large
x != y # différent (non égalité)
x in y # appartenance (pour les listes, ensembles, chaines de
caractères)
x is y # identité (comparaison des identifiants de x et y)

Mohamed Lamine Diakité 10


1.2. Les Structures conditionnelles

Exemple

Mohamed Lamine Diakité 11


1.3. Les structures itératives ou boucles

Une structure itérative est la répétition d'une ou de plusieurs instructions tant que
la condition est vraie.
for Est utilisé lorsqu'on connaît à l'avance le nombre d'itérations d'une
boucle. Elle travaille sur des séquences (plusieurs données)
Syntaxe
for element in sequence : element est une variable qui prend
#bloc d’instructions successivement chacune des valeurs figurant
dans la séquence parcourue.
Liste, chaine de caractères, etc

Exemple

for i in [1,2,3,4,5,6,7,8,9,10]:
print(i)

Mohamed Lamine Diakité 12


1.3. Les structures itératives ou boucles

 Fonction range( ) : Permet de générer une séquence d’entiers

range(3,18,2 )
range(10 ) range(5,12 )

Exemple 45
50
Liste=[45,50,10,25,100] 10
for i in range(5) : 25
print(Liste[i]) Itération sur les indices (Liste[i]) 100
Mohamed Lamine Diakité 13
1.3. Les structures itératives ou boucles

while Tant que la condition est vérifiée, la boucle est effectuée. C'est-à-dire
que les instructions sont effectuées. La boucle peut ne jamais
s'effectuer si la condition n'est pas vérifiée. La condition est testée au
début.
Syntaxe
while condition :
#bloc d’instructions

Exemple

n=10
while(n>=0) :
print(n)
n=n-1

Mohamed Lamine Diakité 14


1.3. Les structures itératives ou boucles

while Tant que la condition est vérifiée, la boucle est effectuée. C'est-à-dire
que les instructions sont effectuées. La boucle peut ne jamais
s'effectuer si la condition n'est pas vérifiée. La condition est testée au
début.
Syntaxe
while condition :
#bloc d’instructions

Exemple

n=10
while(n>=0) :
print(n)
n=n-1 N’oublier pas de décrémenter n (enlever 1).
Risque d’avoir boucle infinie.
Mohamed Lamine Diakité 15
1.3. Les structures itératives ou boucles
Exercices

1. Ecrire la table de multiplication jusqu’à 10 d’un nombre quelconque


saisi au clavier

2. Ecrire chaque lettre d’un texte saisi sur une ligne différente

3. Modifier le programme fait en 1. de sorte que l’utilisateur puisse


afficher la table de multiplication d’autant d’entiers qu’il voudra tant
qu’il continue à répondre à « oui » à la question « Voulez-vous
continuer? »

Mohamed Lamine Diakité 16


1.3. Les structures itératives ou boucles
 Instructions break et continue

 break : permet d’arrêter la boucle et d’y sortir


{0,1,2,3,4}

 continue : permet de sauter à l’itération suivante

Mohamed Lamine Diakité 17


1.4. Les séquences
En Python, une séquence est soit :
• une liste (list)
• un tuple (tuple)
• une chaine de caractères (str)

 Les listes de type list : Une liste est une suite ordonnée d’objets pouvant être de
types différents. Ces objets peuvent éventuellement être eux-mêmes des listes (listes
imbriquées).

Mohamed Lamine Diakité 18


1.4. Les séquences
 Accès aux élément d’une liste
• Par indexation positive

Indices

0 1 2 3
[4, 15, 16, 2]

• Par indexation négative


Indices
-4 -3 -2 -1
[4, 15, 16, 2]

Mohamed Lamine Diakité 19


1.4. Les séquences
 Méthodes applicables sur les listes

len(L) # longueur (nombre d’éléments) de L


L1 + L2 # concaténation des listes
n*L # pour n entier: concaténation répétée de L avec elle-même.
L.append(a) # ajout de l’objet a en fin de liste (m)
L.insert(i,a) # insertion de l’objet a en position i (m)
L.remove(a) # retrait de la première occurrence de a (m)
L.pop(i) # retrait et renvoi de l’élément d’indice i; si i non précisé: dernier élément (m)
L.index(a) # position de la première occurrence de a
L.count(a) # nombre d’occurrences de a dans la liste
a in L # teste l’appartenance de a a L
L.copy() # copie simple de L
L.reverse() # retourne la liste (inversion des indexations) (m)
L.sort() # trie la liste dans l’ordre croissant (m)
L.sort(reverse=True) #Tri inversé (m)
Mohamed Lamine Diakité 20
1.4. Les séquences
 Techniques de saucissonnage ou de slicing

L[i:j] # Extraction de la tranche [L[i], ... , L[j-1]]


L[i:j:p] # De même de p en p a partir de L[i], tant que i+k*p < j
À noter que :
• 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.

Mohamed Lamine Diakité 21


1.4. Les séquences
 Techniques de saucissonnage ou de slicing

M = [0,1,2,3,4,5,6,7,8,9,10]
M[3:6]
[3, 4, 5]
M[2:8:2]
[2, 4, 6]
M[:3]
[0, 1, 2]
[3::3]
[3, 6, 9]
M[::5]
[0, 5, 10]

Mohamed Lamine Diakité 22


1.4. Les séquences
 Les tuples de type tuple sont des n-uplets et sont notés entre parenthèses
 Exemple : t(1,2,3,4)
 Les objets sont énumérés entre parenthèses
 La taille est fixée, ne peut être modifiée

L’accès à un objet t[0]

Le nombre d’objets énumérés len(t)


Mohamed Lamine Diakité 23
1.4. Les séquences
 Méthodes applicables sur les tuples

len(T) # nombre de coordonnées


T+R # retourne la concaténation
n * T ou T * n # concatenation repetée n fois
T.count(a) # retourne le nombre d’occurrences de a dans T
T.index(a) # retourne le premier indice de a, ou une erreur si a n’est pas un attribut
a in T # teste l’appartenance de a à T

Exemples

Mohamed Lamine Diakité 24


1.4. Les séquences
 Les chaines de caractères sont de type str constitué d’un ensemble de caractères
entre ’ et ’ , ’’ et ’’, "" et "", """ et """ ou entre """ et """

Mohamed Lamine Diakité 25


1.4. Les séquences
 Accès au contenu d’une chaine de caractères peut se faire comme avec les listes
• Par indexation positive
ch= "abcdef "

• Par indexation négative


ch= "abcdef "

Mohamed Lamine Diakité 26


1.4. Les séquences
 Quelques méthodes applicables sur les chaines de caractères

Exemples
Mohamed Lamine Diakité 27
1.5. Les dictionnaires
 Les dictionnaires sont des collections non ordonnées d’objets, c’est à dire qu’il
n’y a pas de notion d’ordre (pas d’indice)
 On accède aux valeurs d’un dictionnaire par des clés.

1 est la clé

"un" est la valeur associée à la clé 1

 Définition d’un dictionnaire vide avec { }


 Remplissage du dictionnaire avec les différentes clés auxquelles les valeurs sont
affectées
 Possibilité d’initialiser toutes les clés et les valeurs d’un dictionnaire en une seule
opération

Mohamed Lamine Diakité 28


1.5. Les dictionnaires
 Possibilité d’ajouter des clés et des valeurs supplémentaires

 Récupération d’une valeur associée à une clé

 Itération sur les clés pour obtenir les valeurs

Mohamed Lamine Diakité 29


1.5. Les dictionnaires
 Méthode keys() : renvoie les clés d’un dictionnaire
 Méthode values() : renvoie les valeurs d’un dictionnaire
 Le contenu du dictionnaire dico

 Les clés du dictionnaire dico

 Les valeurs du dictionnaire dico

 Possibilité de convertir en liste avec la fonction list( )

Liste des clés

Liste des valeurs

Mohamed Lamine Diakité 30


1.5. Les dictionnaires
 Itération sur les clés

Mohamed Lamine Diakité 31

Vous aimerez peut-être aussi