• Aucun résultat trouvé

Introduction à l’algorithmique et à la programmation

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction à l’algorithmique et à la programmation"

Copied!
72
0
0

Texte intégral

(1)

Introduction à l’algorithmique et à la programmation

Cours 3

Anthony Labarre

Université Gustave Eiffel

(2)

Plan d’aujourd’hui

Les modules

Les listes

Listes et bouclesfor

(3)

Python pas à pas

Les modules

3 / 24

(4)

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 ;

(5)

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

(6)

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 ;

(7)

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

(8)

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;

(9)

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

(10)

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)

(11)

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

(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)

(13)

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

(14)

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 ;

(15)

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

(16)

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 ;

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

Python pas à pas

Les listes

(25)

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

(26)

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'

(27)

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

(28)

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'

(29)

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

(30)

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'

(31)

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

(32)

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’

(33)

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

(34)

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’

(35)

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

(36)

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]

(37)

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

(38)

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]

(39)

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

(40)

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]

(41)

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

(42)

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 ...

(43)

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

(44)

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 ...

(45)

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

(46)

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 ...

(47)

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

(48)

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 ...

(49)

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

(50)

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 ...

(51)

Python pas à pas

Listes et bouclesfor

17 / 24

(52)

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]

(53)

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

(54)

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]

(55)

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

(56)

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])

(57)

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

(58)

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])

(59)

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

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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

(67)

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

(68)

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)

(69)

É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

(70)

É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.

(71)

É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

(72)

É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éférences

Documents relatifs

I Puissant, souple, très répandu, simple, moderne, élégant, facile à utiliser, à maintenir, adapté à l’enseignement, libre et gratuit, portable, baptisé en référence à

— Les opérations élémentaires sur les lignes et les colonnes permettent de faire apparaître des coefficients nuls dans la matrice pour obtenir un déterminant de matrice triangulaire

Démontrer qu’il y a convergence normale sur tout compact inclus dans le demi-plan {z / <(z) > 1} de cette série de fonctions.. Exercice 11 (Résolution d’une

I Une liste est un objet modifiable ; on peut modifier ses valeurs, ses éléments, etc sans créer de nouvelle liste ; I Ce n’est pas vrai pour les autres types qu’on a vus,.

VRAI : La lumière naturelle n'est pas polarisée (ou plutôt à toutes les directions de polarisation superposées) et la lumière est d'autant plus absorbée que sa polarisation

Complète la ligne fréquence du tableau, en donnant les résultats sous forme décimale3. L’enquête est jugée satisfaisante si 55 % des internautes ont donné une note supérieure

• Quand tous les objets devant composer la liste sont englobés dans le rectangle de sélection, relâcher le bouton droit de la souris puis la touche Alt Alt.. • Les

Tableau II.1: Localisation anatomique des calculs en fonction du sexe………...…..51 Tableau II.2 : Répartition des calculs en fonction du siège anatomique……….…52 Tableau II.3