(Initiation à la) programmation (et à l'algorithmique ...€¦ · 4 Une solution def...

Preview:

Citation preview

1

(Initiation à la) programmation(et à l'algorithmique)

Semaine 8

G. Richommegwenael.richomme@univ-montp3.fr

Université Paul Valéry Montpellier 3

Licence AES parcours Misahs

cours 2011-2012

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

2

Partie 1 : correction des

exercices à faire pour

aujourd'hui

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

3

Exercice

Écrire une fonction qui, étant données deux années, calcule lenombre de jours entre le premier janvier de la première année et le31 décembre de l'année précédent la deuxième année donnée.

Rappel : nous avons déjà écrit une fonction dont l'en-tête est

def est_annee_bissextile( annee ):

# retourne True si annee désigne une année bissextile,

# retourne False sinon.

Analyse du problème : données, résultats, ...

Ecriture de l'en-tête.

Ré�exion sur comment résoudre le problème : analyse d'unexemple (entre 2004 et 2011).

Ecriture d'un exemple.

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

3

Exercice

Écrire une fonction qui, étant données deux années, calcule lenombre de jours entre le premier janvier de la première année et le31 décembre de l'année précédent la deuxième année donnée.

Rappel : nous avons déjà écrit une fonction dont l'en-tête est

def est_annee_bissextile( annee ):

# retourne True si annee désigne une année bissextile,

# retourne False sinon.

Analyse du problème : données, résultats, ...

Ecriture de l'en-tête.

Ré�exion sur comment résoudre le problème : analyse d'unexemple (entre 2004 et 2011).

Ecriture d'un exemple.

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

4

Une solution

def nb_jours_entre_deux_annees( annee1, annee2):# Calcule le nombre de jours entre le 1er janvier annee1# et 31 décembre (annee2 -1)

annee = annee1nbj = 0while annee < annee2:

if est_annee_bissextile( annee ):nbj = nbj + 366

else:nbj = nbj + 365

annee = annee + 1return nbj

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

5

Exercice

Écrire une fonction qui étant donnée deux dates, calcule le nombrede jours entre les deux dates sans compter le jour de la deuxièmedate.

def nb_jours_entre_deux_dates( j1, m1, a1, j2, m2, a2):# Calcule le nombre de jours entre la date j1/m1/a1# et la veille de j2/m2/a2

nbj1 = nb_jours_depuis_1_janvier( j1,m1,a1)nbj2 = nb_jours_depuis_1_janvier( j2,m2,a2)nbj3 = nb_jours_entre_deux_annees( a1, a2)return nbj2-nbj1+nbj3

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

5

Exercice

Écrire une fonction qui étant donnée deux dates, calcule le nombrede jours entre les deux dates sans compter le jour de la deuxièmedate.

def nb_jours_entre_deux_dates( j1, m1, a1, j2, m2, a2):# Calcule le nombre de jours entre la date j1/m1/a1# et la veille de j2/m2/a2

nbj1 = nb_jours_depuis_1_janvier( j1,m1,a1)nbj2 = nb_jours_depuis_1_janvier( j2,m2,a2)nbj3 = nb_jours_entre_deux_annees( a1, a2)return nbj2-nbj1+nbj3

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

6

Calendrier perpétuel

Voir �chier python annexe.

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

7

Partie 2 : LISTES

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

8

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

8

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

8

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

8

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

8

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

9

Introduction

Remarques

La notion d'objet qui sera abordée au second semestres'avérera plus intéressante pour la gestion de certainsensembles de données.

Il existe, en Python, d'autres types permettant de structurerdes données.Notamment les tuples à ne pas confondre avec les listes.

Chaque langage propose ses propres types de structuration(plus ou moins agréables).

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

9

Introduction

Remarques

La notion d'objet qui sera abordée au second semestres'avérera plus intéressante pour la gestion de certainsensembles de données.

Il existe, en Python, d'autres types permettant de structurerdes données.Notamment les tuples à ne pas confondre avec les listes.

Chaque langage propose ses propres types de structuration(plus ou moins agréables).

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

9

Introduction

Remarques

La notion d'objet qui sera abordée au second semestres'avérera plus intéressante pour la gestion de certainsensembles de données.

Il existe, en Python, d'autres types permettant de structurerdes données.Notamment les tuples à ne pas confondre avec les listes.

Chaque langage propose ses propres types de structuration(plus ou moins agréables).

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

10

Exemples de listes

date = [ 1, 10, 2010 ]

Virgule = séparateur.

Les crochets sont obligatoires.

Si oubliés, c'est comme si on mettait des parenthèses : on

dé�nit alors un tuple.

Exemples : retour de fonction !

Tuple 6= Liste

Les listes sont modi�ables. Pas les tuples.

semaine = ["lundi", "mardi", "mercredi", "jeudi",

"vendredi", "samedi", "dimanche"]

Pas de ... dans les dé�nitions !

personnes = [ ["Tom", "Sawyer", 15],

["Huckleberry", "Finn", 17] ]

prix = [ 12.3 , 0.4, 13.2, 4.1, 12, 13.5]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

10

Exemples de listes

date = [ 1, 10, 2010 ]

Virgule = séparateur.

Les crochets sont obligatoires.

Si oubliés, c'est comme si on mettait des parenthèses : on

dé�nit alors un tuple.

Exemples : retour de fonction !

Tuple 6= Liste

Les listes sont modi�ables. Pas les tuples.

semaine = ["lundi", "mardi", "mercredi", "jeudi",

"vendredi", "samedi", "dimanche"]

Pas de ... dans les dé�nitions !

personnes = [ ["Tom", "Sawyer", 15],

["Huckleberry", "Finn", 17] ]

prix = [ 12.3 , 0.4, 13.2, 4.1, 12, 13.5]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

10

Exemples de listes

date = [ 1, 10, 2010 ]

Virgule = séparateur.

Les crochets sont obligatoires.

Si oubliés, c'est comme si on mettait des parenthèses : on

dé�nit alors un tuple.

Exemples : retour de fonction !

Tuple 6= Liste

Les listes sont modi�ables. Pas les tuples.

semaine = ["lundi", "mardi", "mercredi", "jeudi",

"vendredi", "samedi", "dimanche"]

Pas de ... dans les dé�nitions !

personnes = [ ["Tom", "Sawyer", 15],

["Huckleberry", "Finn", 17] ]

prix = [ 12.3 , 0.4, 13.2, 4.1, 12, 13.5]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

10

Exemples de listes

date = [ 1, 10, 2010 ]

Virgule = séparateur.

Les crochets sont obligatoires.

Si oubliés, c'est comme si on mettait des parenthèses : on

dé�nit alors un tuple.

Exemples : retour de fonction !

Tuple 6= Liste

Les listes sont modi�ables. Pas les tuples.

semaine = ["lundi", "mardi", "mercredi", "jeudi",

"vendredi", "samedi", "dimanche"]

Pas de ... dans les dé�nitions !

personnes = [ ["Tom", "Sawyer", 15],

["Huckleberry", "Finn", 17] ]

prix = [ 12.3 , 0.4, 13.2, 4.1, 12, 13.5]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

11

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

11

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

11

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

11

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

11

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

11

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

11

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

12

Exercice

Écrire une fonction qui, étant donnée une liste l, a�che sesdi�érents éléments.

def affiche_liste( l ):

# Affiche dans l'ordre les éléments de la liste

i = 0

while i < len( l ):

print( l[i] )

i = i + 1

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

12

Exercice

Écrire une fonction qui, étant donnée une liste l, a�che sesdi�érents éléments.

def affiche_liste( l ):

# Affiche dans l'ordre les éléments de la liste

i = 0

while i < len( l ):

print( l[i] )

i = i + 1

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

12

Exercice

Écrire une fonction qui, étant donnée une liste l, a�che sesdi�érents éléments.

def affiche_liste( l ):

# Affiche dans l'ordre les éléments de la liste

i = 0

while i < len( l ):

print( l[i] )

i = i + 1

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

13

Exercice

Écrire une fonction qui, étant donnée une liste l, récupère la listedans une chaîne de caractères.

def liste2chaine( l ):

# Transforme une liste en chaîne affichable

if l == [] :

s = str( l[0] )

i = 1

while i < len( l ):

s = s + ", " + str( l[i] )

i = i + 1

else:

s = ""

return s

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

13

Exercice

Écrire une fonction qui, étant donnée une liste l, récupère la listedans une chaîne de caractères.

def liste2chaine( l ):

# Transforme une liste en chaîne affichable

if l == [] :

s = str( l[0] )

i = 1

while i < len( l ):

s = s + ", " + str( l[i] )

i = i + 1

else:

s = ""

return s

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

13

Exercice

Écrire une fonction qui, étant donnée une liste l, récupère la listedans une chaîne de caractères.

def liste2chaine( l ):

# Transforme une liste en chaîne affichable

if l == [] :

s = str( l[0] )

i = 1

while i < len( l ):

s = s + ", " + str( l[i] )

i = i + 1

else:

s = ""

return s

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

14

La fonction range

range( n ) retourne la liste des entiers de 0 à n-1.range(min, max) retourne la liste des entiers de min à max-1range(min, max, pas) retourne la liste des entiers de la forme

min + k * pas qui sont strictement inférieurs à max.

>>> range(3)

[0, 1, 2]

>>> range( 3, 6)

[3, 4, 5]

>>> range(10, 32, 5)

[10, 15, 20, 25, 30]

Remarque :en fait, c'est un itérateur qui est retourné et pas une liste !

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

14

La fonction range

range( n ) retourne la liste des entiers de 0 à n-1.range(min, max) retourne la liste des entiers de min à max-1range(min, max, pas) retourne la liste des entiers de la forme

min + k * pas qui sont strictement inférieurs à max.

>>> range(3)

[0, 1, 2]

>>> range( 3, 6)

[3, 4, 5]

>>> range(10, 32, 5)

[10, 15, 20, 25, 30]

Remarque :en fait, c'est un itérateur qui est retourné et pas une liste !

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

15

L'instruction for

for i in range(min, max):

instructions

réalise exactement la même chose que :i = min

while i < max:

instructions

i = i + 1

Avantage : plus compact, plus clair.Inconvénient : n'existe pas dans la plupart des autres langages deprogrammation ; plus di�cile à tracer car mécanisme caché.

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

15

L'instruction for

for i in range(min, max):

instructions

réalise exactement la même chose que :i = min

while i < max:

instructions

i = i + 1

Avantage : plus compact, plus clair.Inconvénient : n'existe pas dans la plupart des autres langages deprogrammation ; plus di�cile à tracer car mécanisme caché.

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

16

Exemples

def a�che_liste_2( l ):# A�che dans l'ordre les éléments de la liste

for i in range( 0, len( l )):print( l[i] )

def liste2chaine_2( l ):# Transforme une liste en chaîne a�chable

if l == []s = str( l[0] )for i in range( 1, len( l ) ):

s = s + ", " + str( l[i] )else :

s = ""return s

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

17

Agrandir une liste

Concaténation : +Exemple : [ 2, 1 ] + [2, 6] vaut la liste [2, 1, 2, 6]

Ajout d'un élément dans une liste l :Utiliser la concaténation.

l.append

Exemple : si l vaut [2, 1, 2, 6],

l.append( 10) vaut [2, 1, 2, 6, 10].

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

17

Agrandir une liste

Concaténation : +Exemple : [ 2, 1 ] + [2, 6] vaut la liste [2, 1, 2, 6]

Ajout d'un élément dans une liste l :Utiliser la concaténation.

l.append

Exemple : si l vaut [2, 1, 2, 6],

l.append( 10) vaut [2, 1, 2, 6, 10].

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

18

Exercice

Écrire une fonction permettant de saisir une liste d'entiersstrictement positifs au clavier (la saisie d'une valeur négative ounulle provoquera l'arrêt de la saisie).

def saisie_liste_entiers_positifs():

# Saisie une liste d'entiers positifs

# La saisie d'une valeur inférieure ou égale à 0

# provoque l'arrêt de la saisie

print("Donnez des entiers strictement positifs séparés

par des passages à la ligne")

print("Tapez un nombre <= 0 pour arrêter")

x = int(input())

l = [ ]

while ( x > 0):

l = l + [x]

x = int(input())

return l

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

18

Exercice

Écrire une fonction permettant de saisir une liste d'entiersstrictement positifs au clavier (la saisie d'une valeur négative ounulle provoquera l'arrêt de la saisie).

def saisie_liste_entiers_positifs():

# Saisie une liste d'entiers positifs

# La saisie d'une valeur inférieure ou égale à 0

# provoque l'arrêt de la saisie

print("Donnez des entiers strictement positifs séparés

par des passages à la ligne")

print("Tapez un nombre <= 0 pour arrêter")

x = int(input())

l = [ ]

while ( x > 0):

l = l + [x]

x = int(input())

return l

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

19

Exercice

Écrire une fonction permettant de saisir une liste de n entiers, où nest un entier fourni à la fonction.

def saisie_liste_2( n ): # Saisie de n entiers

l = [ ]

i = 1

while i <= n:

x = input("Donnez le " +str(i)+ "eme entier : ")

l = l + [ int(x) ]

i = i +1

return l

def saisie_liste( n ): # Saisie de n entiers

l = [ ]

for i in range(1, n+1):

x = input("Donnez le " +str(i)+ "eme entier : ")

l = l + [ int(x) ]

return l

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

19

Exercice

Écrire une fonction permettant de saisir une liste de n entiers, où nest un entier fourni à la fonction.

def saisie_liste_2( n ): # Saisie de n entiers

l = [ ]

i = 1

while i <= n:

x = input("Donnez le " +str(i)+ "eme entier : ")

l = l + [ int(x) ]

i = i +1

return l

def saisie_liste( n ): # Saisie de n entiers

l = [ ]

for i in range(1, n+1):

x = input("Donnez le " +str(i)+ "eme entier : ")

l = l + [ int(x) ]

return l

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

19

Exercice

Écrire une fonction permettant de saisir une liste de n entiers, où nest un entier fourni à la fonction.

def saisie_liste_2( n ): # Saisie de n entiers

l = [ ]

i = 1

while i <= n:

x = input("Donnez le " +str(i)+ "eme entier : ")

l = l + [ int(x) ]

i = i +1

return l

def saisie_liste( n ): # Saisie de n entiers

l = [ ]

for i in range(1, n+1):

x = input("Donnez le " +str(i)+ "eme entier : ")

l = l + [ int(x) ]

return l

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

20

Autres opérations

Suppression :

del l[i] : permet de supprimer la valeur à l'index i dans la liste l

Accès par tranche (technique de slicing) :

l[i:j] : désigne la sous liste de de l'index i à l'indice j-1.l[:j] : désigne la sous liste de de l'index 0 à l'indice j-1.l[i:] : désigne la sous liste de de l'index i à l'indice len(l)-1.

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

21

Exemple

>>> l = range( 5 ) + range (2, 8, 2)

>>> l

[0, 1, 2, 3, 4, 2, 4, 6]

>>> del l[2]

>>> l

[0, 1, 3, 4, 2, 4, 6]

>>> l[1:4]

[1, 3, 4]

>>> l[5:]

[4, 6]

>>> l[:2]

[0, 1]

>>> l[1:1] = [8]

>>> l

[0, 8, 1, 3, 4, 2, 4, 6]

>>> l[2:] = [ 9 , 1]

>>> l

[0, 8, 9, 1]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

21

Exemple

>>> l = range( 5 ) + range (2, 8, 2)

>>> l

[0, 1, 2, 3, 4, 2, 4, 6]

>>> del l[2]

>>> l

[0, 1, 3, 4, 2, 4, 6]

>>> l[1:4]

[1, 3, 4]

>>> l[5:]

[4, 6]

>>> l[:2]

[0, 1]

>>> l[1:1] = [8]

>>> l

[0, 8, 1, 3, 4, 2, 4, 6]

>>> l[2:] = [ 9 , 1]

>>> l

[0, 8, 9, 1]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

21

Exemple

>>> l = range( 5 ) + range (2, 8, 2)

>>> l

[0, 1, 2, 3, 4, 2, 4, 6]

>>> del l[2]

>>> l

[0, 1, 3, 4, 2, 4, 6]

>>> l[1:4]

[1, 3, 4]

>>> l[5:]

[4, 6]

>>> l[:2]

[0, 1]

>>> l[1:1] = [8]

>>> l

[0, 8, 1, 3, 4, 2, 4, 6]

>>> l[2:] = [ 9 , 1]

>>> l

[0, 8, 9, 1]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

21

Exemple

>>> l = range( 5 ) + range (2, 8, 2)

>>> l

[0, 1, 2, 3, 4, 2, 4, 6]

>>> del l[2]

>>> l

[0, 1, 3, 4, 2, 4, 6]

>>> l[1:4]

[1, 3, 4]

>>> l[5:]

[4, 6]

>>> l[:2]

[0, 1]

>>> l[1:1] = [8]

>>> l

[0, 8, 1, 3, 4, 2, 4, 6]

>>> l[2:] = [ 9 , 1]

>>> l

[0, 8, 9, 1]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

21

Exemple

>>> l = range( 5 ) + range (2, 8, 2)

>>> l

[0, 1, 2, 3, 4, 2, 4, 6]

>>> del l[2]

>>> l

[0, 1, 3, 4, 2, 4, 6]

>>> l[1:4]

[1, 3, 4]

>>> l[5:]

[4, 6]

>>> l[:2]

[0, 1]

>>> l[1:1] = [8]

>>> l

[0, 8, 1, 3, 4, 2, 4, 6]

>>> l[2:] = [ 9 , 1]

>>> l

[0, 8, 9, 1]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

21

Exemple

>>> l = range( 5 ) + range (2, 8, 2)

>>> l

[0, 1, 2, 3, 4, 2, 4, 6]

>>> del l[2]

>>> l

[0, 1, 3, 4, 2, 4, 6]

>>> l[1:4]

[1, 3, 4]

>>> l[5:]

[4, 6]

>>> l[:2]

[0, 1]

>>> l[1:1] = [8]

>>> l

[0, 8, 1, 3, 4, 2, 4, 6]

>>> l[2:] = [ 9 , 1]

>>> l

[0, 8, 9, 1]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

21

Exemple

>>> l = range( 5 ) + range (2, 8, 2)

>>> l

[0, 1, 2, 3, 4, 2, 4, 6]

>>> del l[2]

>>> l

[0, 1, 3, 4, 2, 4, 6]

>>> l[1:4]

[1, 3, 4]

>>> l[5:]

[4, 6]

>>> l[:2]

[0, 1]

>>> l[1:1] = [8]

>>> l

[0, 8, 1, 3, 4, 2, 4, 6]

>>> l[2:] = [ 9 , 1]

>>> l

[0, 8, 9, 1]

gwenael.richomme@univ-montp3.fr (Initiation à la) programmation (et à l'algorithmique)

Recommended