diff --git a/cours/source/06-listes/01-bases.rst b/cours/source/06-listes/01-bases.rst index bf4f537..8b321b3 100644 --- a/cours/source/06-listes/01-bases.rst +++ b/cours/source/06-listes/01-bases.rst @@ -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 ------------------ diff --git a/cours/source/06-listes/02-iteration.rst b/cours/source/06-listes/02-iteration.rst index 6da1c01..9e3d9b9 100644 --- a/cours/source/06-listes/02-iteration.rst +++ b/cours/source/06-listes/02-iteration.rst @@ -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"] diff --git a/cours/source/06-listes/04-booléens.rst b/cours/source/06-listes/03-booléens.rst similarity index 60% rename from cours/source/06-listes/04-booléens.rst rename to cours/source/06-listes/03-booléens.rst index 3a2d168..df2acc0 100644 --- a/cours/source/06-listes/04-booléens.rst +++ b/cours/source/06-listes/03-booléens.rst @@ -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 diff --git a/cours/source/06-listes/03-strings.rst b/cours/source/06-listes/04-strings.rst similarity index 51% rename from cours/source/06-listes/03-strings.rst rename to cours/source/06-listes/04-strings.rst index d3b7daa..7437f19 100644 --- a/cours/source/06-listes/03-strings.rst +++ b/cours/source/06-listes/04-strings.rst @@ -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 diff --git a/cours/source/06-listes/05-exercice.rst b/cours/source/06-listes/05-exercice.rst index b33e492..4412fc2 100644 --- a/cours/source/06-listes/05-exercice.rst +++ b/cours/source/06-listes/05-exercice.rst @@ -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. diff --git a/cours/source/06-listes/index.rst b/cours/source/06-listes/index.rst index 0ea3cf8..bb737b3 100644 --- a/cours/source/06-listes/index.rst +++ b/cours/source/06-listes/index.rst @@ -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