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

• 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

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

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

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

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