@@ -46,21 +46,37 @@ Concaténation de listes | |||
Avec ``+``:: | |||
prénoms = ["Alice", "Bob"] | |||
prénoms += ["Charlie", "Eve"] | |||
prénoms_1 = ["Alice", "Bob"] | |||
prénoms_2 = ["Charlie", "Eve"] | |||
prénoms = prénoms_1 + prénoms_2 | |||
print(prénoms) | |||
# affiche: ['Alice', 'Bob', "Charlie", 'Eve'] | |||
On ne peut concaténer des listes que avec d'autres listes:: | |||
scores = [1, 2, 3] | |||
scores += 4 | |||
scores = scores + 4 | |||
# erreur | |||
scores += [4] | |||
scores = [1, 2, 3] | |||
scores = scores + [4] | |||
print(scores) | |||
# affiche: [1,2,3,4] | |||
On peut aussi utiliser ``+=`` pour combiner l'assignation et la Concaténation, | |||
comme avec les nombres:: | |||
a = 3 | |||
a += 2 | |||
print(a) | |||
# Affiche: 5 | |||
x = [1, 2] | |||
x += [3, 4, 5] | |||
print(x) | |||
# Affiche: [1, 2, 3, 4, 5] | |||
Indexer une liste | |||
------------------ | |||
@@ -4,7 +4,7 @@ Itération | |||
Itérer sur les éléments d'une liste | |||
------------------------------------ | |||
Avec les mots-clés ``for`` et `` in``:: | |||
Avec les mots-clés ``for`` et ``in``:: | |||
prénoms = ["Alice", "Bob", "Charlie"] | |||
for prénom in prénoms: | |||
@@ -32,12 +32,12 @@ Comme pour les boucles `while`, on peut interrompre la boucle `for` avec `break` | |||
.. code-block:: text | |||
Bonjour Alice | |||
Bonjour Charlie | |||
Bonjour Bob | |||
continue | |||
-------- | |||
On peut interrompre l'exécution *du bloc courant* (et uniqument le | |||
On peut interrompre l'exécution *du bloc courant* (et uniquement le | |||
bloc courant) avec le mot-clé ``continue``:: | |||
prénoms = ["Alice", "Bob", "Charlie"] | |||
@@ -9,11 +9,15 @@ la liste n'est pas vide , ``if`` se comportera comme si on avait mis une valeur | |||
ma_liste = [1, 2, 3] | |||
if ma_liste: | |||
print("ma_liste n'est pas vide") | |||
# affiche: ma_liste n'est pas vide | |||
print("ma_liste est truthy") | |||
else: | |||
print("ma_liste est falsy") | |||
# affiche: ma_liste est truthy | |||
mon_autre_liste = [] | |||
if not mon_autre_liste: | |||
if mon_autre_liste: | |||
print("mon_autre_liste n'est pas vide") | |||
else: | |||
print("mon_autre_liste est vide") | |||
# affiche: mon_autre_liste est vide | |||
@@ -42,7 +46,24 @@ d'autres. Les listes seront considérées comme égales si | |||
* Elles ont la même taille | |||
* Tous leurs éléments sont égaux un à un en respectant l'ordre:: | |||
[1] == [2] # False | |||
[1, 2] == [2, 1] # False | |||
[1, 2] == [1, 2] # True | |||
x = [1] | |||
y = [1, 2] | |||
print(x == y) | |||
# Affiche False: x et y n'ont pas la même taille | |||
x = [1, 2] | |||
y = [1, 3] | |||
print(x == y) | |||
# Affiche False: x et y n'ont pas les mêmes éléments | |||
x = [1, 2] | |||
y = [2, 1] | |||
print(x == y) | |||
# Affiche False: x et y ont les mêmes éléments, mais | |||
# pas dans le bon ordre | |||
x = [1, 2] | |||
y = [1] | |||
y += [2] | |||
print(x == y) | |||
# Affiche True: x et y ont les mêmes éléments, dans le même ordre |
@@ -3,12 +3,12 @@ Relation avec les strings | |||
Les strings sont aussi des listes (presque). | |||
On peut itérer sur les caractères d'une string:: | |||
On peut itérer sur les *caractères* d'une string:: | |||
for c in "vache": | |||
print(c) | |||
.. code-block: console | |||
.. code-block:: console | |||
v | |||
a | |||
@@ -21,20 +21,26 @@ On peut tester si un caractère est présent:: | |||
print("e" in "vache") | |||
# affiche: True | |||
print(x" in "vache") | |||
print("x" in "vache") | |||
# affiche: False | |||
Mais on ne peut pas modifier une string:: | |||
Notez qu'on peut aussi utiliser ``in`` pour tester si | |||
une chaîne de caractères est contenue dans une autre:: | |||
print("ch" in "vache") | |||
# affiche: True | |||
On peut indexer une string:: | |||
prénom = "Charlotte" | |||
l = prénom[0] | |||
print(l) | |||
# affiche: "C" | |||
l = prénom[3] | |||
print(l) | |||
# affiche: "r" | |||
Mais on ne peut pas modifier une string en utilisant | |||
l'indexation:: | |||
prénom = "Charlotte" | |||
prénom[0] = "X" | |||
# erreur: TypeError |
@@ -42,9 +42,9 @@ Consignes | |||
* À ce stade, vous devriez constater plusieurs problèmes: | |||
* Au lieu d'avoir un mot au hasard, le mot à deviner est toujours "accord" | |||
* Au lieu d'avoir un mot au hasard, le mot à deviner est toujours ``accord`` | |||
* Au lieu d'afficher un indice, le code affiche une liste de tentatives | |||
* Le jeu est impossible à gagner parce que la fonction `a_gagné` renvoie toujours False | |||
* Le jeu est impossible à gagner parce que la fonction ``a_gagné`` renvoie toujours ``False`` | |||
Le but de l'exercice est de corriger ces 3 problèmes. | |||
@@ -6,8 +6,8 @@ Chapitre 6 - Listes | |||
./01-bases.rst | |||
./02-iteration.rst | |||
./03-strings.rst | |||
./04-booléens.rst | |||
./03-booléens.rst | |||
./04-strings.rst | |||
./05-exercice.rst | |||