Introduction à l’algorithmique et à la programmation
Cours 3
Anthony Labarre
Université Gustave Eiffel
Plan d’aujourd’hui
Les modules
Les listes
Listes et bouclesfor
Python pas à pas
Les modules
3 / 24
Modules
I Unmoduleest un ensemble de fonctions déjà programmées, prêtes à être utilisées ;
I Python propose beaucoup demodules de base: (math, time,random, ...) ;
I On peut aussi en télécharger sur Internet ou en créer facilement ;
Modules
I Unmoduleest un ensemble de fonctions déjà programmées, prêtes à être utilisées ;
I Python propose beaucoup demodules de base: (math, time,random, ...) ;
I On peut aussi en télécharger sur Internet ou en créer facilement ;
4 / 24
Modules
I Unmoduleest un ensemble de fonctions déjà programmées, prêtes à être utilisées ;
I Python propose beaucoup demodules de base: (math, time,random, ...) ;
I On peut aussi en télécharger sur Internet ou en créer facilement ;
Utilisation de modules
I Il y a trois façons d’utiliser une fonctionma_fonctiond’un modulemon_module:
1. frommon_moduleimportma_fonction: on utilise alors normalement la fonction ;
2. importmon_module: la fonction s’appelle mon_module.ma_fonction;
3. frommon_moduleimport*: comme 1, mais on charge toutesles fonctions du modulemon_module;
5 / 24
Utilisation de modules
I Il y a trois façons d’utiliser une fonctionma_fonctiond’un modulemon_module:
1. frommon_moduleimportma_fonction: on utilise alors normalement la fonction ;
2. importmon_module: la fonction s’appelle mon_module.ma_fonction;
3. frommon_moduleimport*: comme 1, mais on charge toutesles fonctions du modulemon_module;
Utilisation de modules
I Il y a trois façons d’utiliser une fonctionma_fonctiond’un modulemon_module:
1. frommon_moduleimportma_fonction: on utilise alors normalement la fonction ;
2. importmon_module: la fonction s’appelle mon_module.ma_fonction;
3. frommon_moduleimport*: comme 1, mais on charge toutesles fonctions du modulemon_module;
5 / 24
Renommage de modules : as
L’import from mon_module import * est déconseillé ! ! !
I Il peut créer des problèmes : on peut écraser des fonctions possédant le même nom !
I Si le nom du module vous dérange, vous pouvez utiliser as;
I Par exemple :
>>> import nombeaucouptroplong as nbtl
>>> x = nbtl.ma_fonction(12)
Renommage de modules : as
L’import from mon_module import * est déconseillé ! ! !
I Il peut créer des problèmes : on peut écraser des fonctions possédant le même nom !
I Si le nom du module vous dérange, vous pouvez utiliser as;
I Par exemple :
>>> import nombeaucouptroplong as nbtl
>>> x = nbtl.ma_fonction(12)
6 / 24
Renommage de modules : as
L’import from mon_module import * est déconseillé ! ! !
I Il peut créer des problèmes : on peut écraser des fonctions possédant le même nom !
I Si le nom du module vous dérange, vous pouvez utiliser as;
I Par exemple :
>>> import nombeaucouptroplong as nbtl
>>> x = nbtl.ma_fonction(12)
Renommage de modules : as
L’import from mon_module import * est déconseillé ! ! !
I Il peut créer des problèmes : on peut écraser des fonctions possédant le même nom !
I Si le nom du module vous dérange, vous pouvez utiliser as;
I Par exemple :
>>> import nombeaucouptroplong as nbtl
>>> x = nbtl.ma_fonction(12)
6 / 24
Un exemple
Exemple (modulemath) import math
if __name__ == "__main__":
print('pi = ', math.pi) print(math.cos(math.pi/4))
I math: les fonctions et les constantes mathématiques usuelles comme exp, cos,π, . . . ;
I random: des fonctions pour faire des tirages au sort ; I time: pour mesurer le temps, connaître l’heure, ou
attendre un certain temps ;
Un exemple
Exemple (modulemath) import math
if __name__ == "__main__":
print('pi = ', math.pi) print(math.cos(math.pi/4))
I math: les fonctions et les constantes mathématiques usuelles comme exp, cos,π, . . . ;
I random: des fonctions pour faire des tirages au sort ; I time: pour mesurer le temps, connaître l’heure, ou
attendre un certain temps ;
7 / 24
Un exemple
Exemple (modulemath) import math
if __name__ == "__main__":
print('pi = ', math.pi) print(math.cos(math.pi/4))
I math: les fonctions et les constantes mathématiques usuelles comme exp, cos,π, . . . ;
I random: des fonctions pour faire des tirages au sort ;
I time: pour mesurer le temps, connaître l’heure, ou attendre un certain temps ;
Un exemple
Exemple (modulemath) import math
if __name__ == "__main__":
print('pi = ', math.pi) print(math.cos(math.pi/4))
I math: les fonctions et les constantes mathématiques usuelles comme exp, cos,π, . . . ;
I random: des fonctions pour faire des tirages au sort ; I time: pour mesurer le temps, connaître l’heure, ou
attendre un certain temps ;
7 / 24
Pourquoi “ if __name__ == '__main__'” ?
I Lorsque Python charge un module, il exécute tout le code exécutable qui s’y trouve ;
I La variable__name__contient le nom du module mon_module, à savoir :
I 'mon_module's’il est chargé comme module ; I '__main__'s’il est chargé comme programme ;
Écrire votre code dans main() ou sous if __name__ == '__main__' permet de ne l’exécuter que quand on écrit python3 mon_module.py
Pourquoi “ if __name__ == '__main__'” ?
I Lorsque Python charge un module, il exécute tout le code exécutable qui s’y trouve ;
I La variable__name__contient le nom du module mon_module, à savoir :
I 'mon_module's’il est chargé comme module ; I '__main__'s’il est chargé comme programme ;
Écrire votre code dans main() ou sous if __name__ == '__main__' permet de ne l’exécuter que quand on écrit python3 mon_module.py
8 / 24
Pourquoi “ if __name__ == '__main__'” ?
I Lorsque Python charge un module, il exécute tout le code exécutable qui s’y trouve ;
I La variable__name__contient le nom du module mon_module, à savoir :
I 'mon_module's’il est chargé comme module ;
I '__main__'s’il est chargé comme programme ;
Écrire votre code dans main() ou sous if __name__ == '__main__' permet de ne l’exécuter que quand on écrit python3 mon_module.py
Pourquoi “ if __name__ == '__main__'” ?
I Lorsque Python charge un module, il exécute tout le code exécutable qui s’y trouve ;
I La variable__name__contient le nom du module mon_module, à savoir :
I 'mon_module's’il est chargé comme module ; I '__main__'s’il est chargé comme programme ;
Écrire votre code dans main() ou sous if __name__ == '__main__' permet de ne l’exécuter que quand on écrit python3 mon_module.py
8 / 24
Pourquoi “ if __name__ == '__main__'” ?
I Lorsque Python charge un module, il exécute tout le code exécutable qui s’y trouve ;
I La variable__name__contient le nom du module mon_module, à savoir :
I 'mon_module's’il est chargé comme module ; I '__main__'s’il est chargé comme programme ;
Écrire votre code dans main() ou sous if __name__ == '__main__' permet de ne l’exécuter que quand on écrit python3 mon_module.py
Créer ses propres modules
I Pour créer le modulemon_module, il suffit d’écrire ses fonctions, constantes, ... dans un fichiermon_module.py; I Pour que Python le trouve, il doit être :
1. dans un répertoire “standard” ;
2. ou dans le même répertoire que votreprogramme principal;
I Les règles vues pour nommer les variables s’appliquent aux modules ;
9 / 24
Python pas à pas
Les listes
Motivation
I Imaginons qu’on veuille programmer un jeu d’échecs en Python ;
I On a 64 cases à représenter :
I Par exemple parcase0, case1, ..., case63; I ... c’est possible, mais ni ergonomique ni facilement
adaptable ;
11 / 24
Présentation
I Lalisteest une structure itérable ordonnée dont les données peuvent être de n’importe quels types ;
I On peut créer une liste par uneaffectation normale, où on met entre crochets et séparés par des virgules les
différentes valeurs de la liste :
lst = [3, 'toto', 4.5, False]
I Il y a une liste particulière, laliste vide[]qui ne contient aucun élément ;
I La syntaxelst[i]donne accès aui-ème élément de la listelst;
I Attention :les indices commencent à 0 et non à 1 !
Exemple
>>> lst = [3, 'toto', 4.5, False]
>>> print(lst[1]) 'toto'
Présentation
I Lalisteest une structure itérable ordonnée dont les données peuvent être de n’importe quels types ;
I On peut créer une liste par uneaffectation normale, où on met entre crochets et séparés par des virgules les
différentes valeurs de la liste :
lst = [3, 'toto', 4.5, False]
I Il y a une liste particulière, laliste vide[]qui ne contient aucun élément ;
I La syntaxelst[i]donne accès aui-ème élément de la listelst;
I Attention :les indices commencent à 0 et non à 1 !
Exemple
>>> lst = [3, 'toto', 4.5, False]
>>> print(lst[1]) 'toto'
12 / 24
Présentation
I Lalisteest une structure itérable ordonnée dont les données peuvent être de n’importe quels types ;
I On peut créer une liste par uneaffectation normale, où on met entre crochets et séparés par des virgules les
différentes valeurs de la liste :
lst = [3, 'toto', 4.5, False]
I Il y a une liste particulière, laliste vide[]qui ne contient aucun élément ;
I La syntaxelst[i]donne accès aui-ème élément de la listelst;
I Attention :les indices commencent à 0 et non à 1 !
Exemple
>>> lst = [3, 'toto', 4.5, False]
>>> print(lst[1]) 'toto'
Présentation
I Lalisteest une structure itérable ordonnée dont les données peuvent être de n’importe quels types ;
I On peut créer une liste par uneaffectation normale, où on met entre crochets et séparés par des virgules les
différentes valeurs de la liste :
lst = [3, 'toto', 4.5, False]
I Il y a une liste particulière, laliste vide[]qui ne contient aucun élément ;
I La syntaxelst[i]donne accès aui-ème élément de la listelst;
I Attention :les indices commencent à 0 et non à 1 !
Exemple
>>> lst = [3, 'toto', 4.5, False]
>>> print(lst[1]) 'toto'
12 / 24
Présentation
I Lalisteest une structure itérable ordonnée dont les données peuvent être de n’importe quels types ;
I On peut créer une liste par uneaffectation normale, où on met entre crochets et séparés par des virgules les
différentes valeurs de la liste :
lst = [3, 'toto', 4.5, False]
I Il y a une liste particulière, laliste vide[]qui ne contient aucun élément ;
I La syntaxelst[i]donne accès aui-ème élément de la listelst;
I Attention :les indices commencent à 0 et non à 1 !
Exemple
>>> lst = [3, 'toto', 4.5, False]
>>> print(lst[1]) 'toto'
Présentation
I Lalisteest une structure itérable ordonnée dont les données peuvent être de n’importe quels types ;
I On peut créer une liste par uneaffectation normale, où on met entre crochets et séparés par des virgules les
différentes valeurs de la liste :
lst = [3, 'toto', 4.5, False]
I Il y a une liste particulière, laliste vide[]qui ne contient aucun élément ;
I La syntaxelst[i]donne accès aui-ème élément de la listelst;
I Attention :les indices commencent à 0 et non à 1 ! Exemple
>>> lst = [3, 'toto', 4.5, False]
>>> print(lst[1]) 'toto'
12 / 24
Affectations et listes
Il y a des subtilités ici, à bien travailler.
I Une liste est un objetmodifiable; on peutmodifier ses valeurs, ses éléments,etcsans créer de nouvelle liste;
I Ce n’est pas vrai pour les autres types qu’on a vus, notamment les chaînes de caractères ;
I On peutchanger lai-ème valeurdelstavec une affectation classique :lst[2] = ’titi’
Affectations et listes
Il y a des subtilités ici, à bien travailler.
I Une liste est un objetmodifiable; on peutmodifier ses valeurs, ses éléments,etcsans créer de nouvelle liste; I Ce n’est pas vrai pour les autres types qu’on a vus,
notamment les chaînes de caractères ;
I On peutchanger lai-ème valeurdelstavec une affectation classique :lst[2] = ’titi’
13 / 24
Affectations et listes
Il y a des subtilités ici, à bien travailler.
I Une liste est un objetmodifiable; on peutmodifier ses valeurs, ses éléments,etcsans créer de nouvelle liste; I Ce n’est pas vrai pour les autres types qu’on a vus,
notamment les chaînes de caractères ;
I On peutchanger lai-ème valeurdelstavec une affectation classique :lst[2] = ’titi’
Affectations et listes
I Silstest une liste,lst2 = lstassocie au nomlst2la même liste(qui est modifiable) ;
I En conséquence, si on modifie ensuitelst,on modifie aussilst2!
Exemple
>>> lst = [3, 'toto', 4.5, False]
>>> lst2 = lst
>>> lst2[1] = 'titi'
>>> print(lst)
[3, 'titi', 4.5, False]
[Visualisation sur PythonTutor]
I On peut obtenir une copie aveclist(); [Visualisation sur PythonTutor]
14 / 24
Quelques opérations
I len(lst)renvoie la longueur delst;
I x in lstrenvoie un booléen qui estTruequandxest danslst;
I Le+crée unenouvelle listequi est la concaténation de deux listes :
Exemple
>>> [3, 4, 7] + ['toto', 5] [3, 4, 7, 'toto', 5]
I Si on multiplie une liste par un entiern, cela crée une nouvelle listeoù l’ancienne est répétéenfois :
Exemple
>>> lst = [3, 4, 7]
>>> lst2 = lst * 3
>>> print(lst2)
[3, 4, 7, 3, 4, 7, 3, 4, 7]
Quelques opérations
I len(lst)renvoie la longueur delst;
I x in lstrenvoie un booléen qui estTruequandxest danslst;
I Le+crée unenouvelle listequi est la concaténation de deux listes :
Exemple
>>> [3, 4, 7] + ['toto', 5] [3, 4, 7, 'toto', 5]
I Si on multiplie une liste par un entiern, cela crée une nouvelle listeoù l’ancienne est répétéenfois :
Exemple
>>> lst = [3, 4, 7]
>>> lst2 = lst * 3
>>> print(lst2)
[3, 4, 7, 3, 4, 7, 3, 4, 7]
15 / 24
Quelques opérations
I len(lst)renvoie la longueur delst;
I x in lstrenvoie un booléen qui estTruequandxest danslst;
I Le+crée unenouvelle listequi est la concaténation de deux listes :
Exemple
>>> [3, 4, 7] + ['toto', 5] [3, 4, 7, 'toto', 5]
I Si on multiplie une liste par un entiern, cela crée une nouvelle listeoù l’ancienne est répétéenfois :
Exemple
>>> lst = [3, 4, 7]
>>> lst2 = lst * 3
>>> print(lst2)
[3, 4, 7, 3, 4, 7, 3, 4, 7]
Quelques opérations
I len(lst)renvoie la longueur delst;
I x in lstrenvoie un booléen qui estTruequandxest danslst;
I Le+crée unenouvelle listequi est la concaténation de deux listes :
Exemple
>>> [3, 4, 7] + ['toto', 5]
[3, 4, 7, 'toto', 5]
I Si on multiplie une liste par un entiern, cela crée une nouvelle listeoù l’ancienne est répétéenfois :
Exemple
>>> lst = [3, 4, 7]
>>> lst2 = lst * 3
>>> print(lst2)
[3, 4, 7, 3, 4, 7, 3, 4, 7]
15 / 24
Quelques opérations
I len(lst)renvoie la longueur delst;
I x in lstrenvoie un booléen qui estTruequandxest danslst;
I Le+crée unenouvelle listequi est la concaténation de deux listes :
Exemple
>>> [3, 4, 7] + ['toto', 5]
[3, 4, 7, 'toto', 5]
I Si on multiplie une liste par un entiern, cela crée une nouvelle listeoù l’ancienne est répétéenfois :
Exemple
>>> lst = [3, 4, 7]
>>> lst2 = lst * 3
>>> print(lst2)
[3, 4, 7, 3, 4, 7, 3, 4, 7]
Quelques opérations
I len(lst)renvoie la longueur delst;
I x in lstrenvoie un booléen qui estTruequandxest danslst;
I Le+crée unenouvelle listequi est la concaténation de deux listes :
Exemple
>>> [3, 4, 7] + ['toto', 5]
[3, 4, 7, 'toto', 5]
I Si on multiplie une liste par un entiern, cela crée une nouvelle listeoù l’ancienne est répétéenfois :
Exemple
>>> lst = [3, 4, 7]
>>> lst2 = lst * 3
>>> print(lst2)
[3, 4, 7, 3, 4, 7, 3, 4, 7]
15 / 24
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ; I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst; I lst.extend(lst2)ajoute tous les élémentsdelst2à
la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ; I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst; I lst.extend(lst2)ajoute tous les élémentsdelst2à
la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
16 / 24
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ;
I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst; I lst.extend(lst2)ajoute tous les élémentsdelst2à
la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ; I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst; I lst.extend(lst2)ajoute tous les élémentsdelst2à
la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
16 / 24
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ; I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst;
I lst.extend(lst2)ajoute tous les élémentsdelst2à la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ; I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst; I lst.extend(lst2)ajoute tous les élémentsdelst2à
la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
16 / 24
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ; I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst; I lst.extend(lst2)ajoute tous les élémentsdelst2à
la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ; I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst; I lst.extend(lst2)ajoute tous les élémentsdelst2à
la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
16 / 24
Autres opérations
I Les listes sont desobjetsdisposant deméthodes: des fonctions rattachées au typelist;
I La syntaxe permettant d’utiliser ces méthodes sur une liste lstestlst.methode();
I Attention :en général, celamodifiela liste ; I Quelques exemples :
I lst.append(x)ajoute la valeurdexà la fin delst; I lst.extend(lst2)ajoute tous les élémentsdelst2à
la fin delst;
I lst.pop()supprime le dernier élémentdelstet renvoie sa valeur ;
I lst.pop(i)supprime lei-ème élémentdelstet renvoie sa valeur ;
I ...
Python pas à pas
Listes et bouclesfor
17 / 24
Structure itérable
I On a vu la fois passée ce qu’étaient les structures itérables ;
I On peut changer un itérable en la liste, dans l’ordre, de ses éléments avec la fonctionlist();
I C’est ce qu’on fait pour obtenir de façon explicite ce que contient unrange:
Exemple
>>> range(0, 5) range(0, 5)
>>> list(range(0, 5)) [0, 1, 2, 3, 4]
Structure itérable
I On a vu la fois passée ce qu’étaient les structures itérables ;
I On peut changer un itérable en la liste, dans l’ordre, de ses éléments avec la fonctionlist();
I C’est ce qu’on fait pour obtenir de façon explicite ce que contient unrange:
Exemple
>>> range(0, 5) range(0, 5)
>>> list(range(0, 5)) [0, 1, 2, 3, 4]
18 / 24
Structure itérable
I On a vu la fois passée ce qu’étaient les structures itérables ;
I On peut changer un itérable en la liste, dans l’ordre, de ses éléments avec la fonctionlist();
I C’est ce qu’on fait pour obtenir de façon explicite ce que contient unrange:
Exemple
>>> range(0, 5) range(0, 5)
>>> list(range(0, 5)) [0, 1, 2, 3, 4]
Structure itérable
I On a vu la fois passée ce qu’étaient les structures itérables ;
I On peut changer un itérable en la liste, dans l’ordre, de ses éléments avec la fonctionlist();
I C’est ce qu’on fait pour obtenir de façon explicite ce que contient unrange:
Exemple
>>> range(0, 5) range(0, 5)
>>> list(range(0, 5)) [0, 1, 2, 3, 4]
18 / 24
Itérer sur une liste
I Une liste étant une structure itérable, on itère sur ses éléments comme sur ceux d’une chaîne ou d’unrange:
Exemple
liste = [3, 5, 6, 14, -6, 121] for element in liste:
print(element)
I Si on a besoin des indices lors du parcours d’un itérable ordonné, on peut utiliserrange(len(iterable)), vu que les indices vont de0àlen(iterable) - 1
Exemple
lst = ['bon', 'jour', 'bonjour'] for i in range(len(lst)):
print(i, lst[i])
Itérer sur une liste
I Une liste étant une structure itérable, on itère sur ses éléments comme sur ceux d’une chaîne ou d’unrange:
Exemple
liste = [3, 5, 6, 14, -6, 121]
for element in liste:
print(element)
I Si on a besoin des indices lors du parcours d’un itérable ordonné, on peut utiliserrange(len(iterable)), vu que les indices vont de0àlen(iterable) - 1
Exemple
lst = ['bon', 'jour', 'bonjour'] for i in range(len(lst)):
print(i, lst[i])
19 / 24
Itérer sur une liste
I Une liste étant une structure itérable, on itère sur ses éléments comme sur ceux d’une chaîne ou d’unrange:
Exemple
liste = [3, 5, 6, 14, -6, 121]
for element in liste:
print(element)
I Si on a besoin des indices lors du parcours d’un itérable ordonné, on peut utiliserrange(len(iterable)), vu que les indices vont de0àlen(iterable) - 1
Exemple
lst = ['bon', 'jour', 'bonjour'] for i in range(len(lst)):
print(i, lst[i])
Itérer sur une liste
I Une liste étant une structure itérable, on itère sur ses éléments comme sur ceux d’une chaîne ou d’unrange:
Exemple
liste = [3, 5, 6, 14, -6, 121]
for element in liste:
print(element)
I Si on a besoin des indices lors du parcours d’un itérable ordonné, on peut utiliserrange(len(iterable)), vu que les indices vont de0àlen(iterable) - 1
Exemple
lst = ['bon', 'jour', 'bonjour']
for i in range(len(lst)):
print(i, lst[i])
19 / 24
Affectations dans un for
I Rappel : les affectations de “l’itérateur” ne fonctionnent pas comme on pourrait le croire !
I Exemple : si l’on veut ajouter 1 à tous les éléments d’une liste :
for element in liste: element += 1 ne marche pas ;
I On estobligéde recourir aux indices :
for i in range(len(liste)): liste[i] += 1
Affectations dans un for
I Rappel : les affectations de “l’itérateur” ne fonctionnent pas comme on pourrait le croire !
I Exemple : si l’on veut ajouter 1 à tous les éléments d’une liste :
for element in liste:
element += 1 ne marche pas ;
I On estobligéde recourir aux indices :
for i in range(len(liste)): liste[i] += 1
20 / 24
Affectations dans un for
I Rappel : les affectations de “l’itérateur” ne fonctionnent pas comme on pourrait le croire !
I Exemple : si l’on veut ajouter 1 à tous les éléments d’une liste :
for element in liste:
element += 1 ne marche pas ;
I On estobligéde recourir aux indices :
for i in range(len(liste)):
liste[i] += 1
break et continue
I Il existe deux moyens pour interrompre une boucle :
I breakarrête la boucle et reprend donc l’exécution du programme après la boucle ;
I continuearrête l’itération en cours (on “continue” à l’itération suivante de la boucle) ;
for ...: break
suite du programme
for ...: continue
suite du programme
21 / 24
break et continue
I Il existe deux moyens pour interrompre une boucle : I breakarrête la boucle et reprend donc l’exécution du
programme après la boucle ;
I continuearrête l’itération en cours (on “continue” à l’itération suivante de la boucle) ;
for ...: break
suite du programme
for ...: continue
suite du programme
break et continue
I Il existe deux moyens pour interrompre une boucle : I breakarrête la boucle et reprend donc l’exécution du
programme après la boucle ;
I continuearrête l’itération en cours (on “continue” à l’itération suivante de la boucle) ;
for ...: break
suite du programme
for ...: continue
suite du programme
21 / 24
break et continue
I Il existe deux moyens pour interrompre une boucle : I breakarrête la boucle et reprend donc l’exécution du
programme après la boucle ;
I continuearrête l’itération en cours (on “continue” à l’itération suivante de la boucle) ;
for ...:
break
suite du programme
for ...:
continue
suite du programme
Un exemple avec break
I Exemple d’utilisation : si on cherche à savoir si une liste contient un nombre supérieur à 10, rien ne sert de poursuivre les
recherches une fois qu’on en a trouvé un :
Exemple (trouver un élément>10)
# lst = ...
for element in lst:
if element > 10:
print("J'ai trouvé", element,
"dans la liste, qui est supérieur à 10") break
22 / 24
Un exemple avec continue
I Exemple d’utilisation : n’afficher que les éléments d’une liste qui ne sontpasdes chaînes :
Exemple (afficher une liste (sauf ses chaînes))
# lst = ...
for element in lst:
if type(element) is str:
continue print(element)
Éléments 6= positions ! ! !
N’utilisezjamaisipour désigner unélément de la liste ! ! !
Exemple (correct)
for element in liste:
# ... code sur des éléments
Exemple (correct)
for i in range(len(liste)):
# ... code sur des positions
Exemple (incorrect)
for i in liste:
# ... confusion éléments / positions! liste[i] = ... # plantage
Réservez les nomsi,j,k, . . . aux indices.
24 / 24
Éléments 6= positions ! ! !
N’utilisezjamaisipour désigner unélément de la liste ! ! !
Exemple (correct)
for element in liste:
# ... code sur des éléments
Exemple (correct)
for i in range(len(liste)):
# ... code sur des positions
Exemple (incorrect)
for i in liste:
# ... confusion éléments / positions! liste[i] = ... # plantage
Réservez les nomsi,j,k, . . . aux indices.
Éléments 6= positions ! ! !
N’utilisezjamaisipour désigner unélément de la liste ! ! !
Exemple (correct)
for element in liste:
# ... code sur des éléments
Exemple (correct)
for i in range(len(liste)):
# ... code sur des positions
Exemple (incorrect)
for i in liste:
# ... confusion éléments / positions!
liste[i] = ... # plantage
Réservez les nomsi,j,k, . . . aux indices.
24 / 24
Éléments 6= positions ! ! !
N’utilisezjamaisipour désigner unélément de la liste ! ! !
Exemple (correct)
for element in liste:
# ... code sur des éléments
Exemple (correct)
for i in range(len(liste)):
# ... code sur des positions
Exemple (incorrect)
for i in liste:
# ... confusion éléments / positions!
liste[i] = ... # plantage