| @@ -46,21 +46,37 @@ Concaténation de listes | |||||
| Avec ``+``:: | 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) | print(prénoms) | ||||
| # affiche: ['Alice', 'Bob', "Charlie", 'Eve'] | # affiche: ['Alice', 'Bob', "Charlie", 'Eve'] | ||||
| On ne peut concaténer des listes que avec d'autres listes:: | On ne peut concaténer des listes que avec d'autres listes:: | ||||
| scores = [1, 2, 3] | scores = [1, 2, 3] | ||||
| scores += 4 | |||||
| scores = scores + 4 | |||||
| # erreur | # erreur | ||||
| scores += [4] | |||||
| scores = [1, 2, 3] | |||||
| scores = scores + [4] | |||||
| print(scores) | print(scores) | ||||
| # affiche: [1,2,3,4] | # 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 | Indexer une liste | ||||
| ------------------ | ------------------ | ||||
| @@ -4,7 +4,7 @@ Itération | |||||
| Itérer sur les éléments d'une liste | 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"] | prénoms = ["Alice", "Bob", "Charlie"] | ||||
| for prénom in prénoms: | 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 | .. code-block:: text | ||||
| Bonjour Alice | Bonjour Alice | ||||
| Bonjour Charlie | |||||
| Bonjour Bob | |||||
| continue | 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``:: | bloc courant) avec le mot-clé ``continue``:: | ||||
| prénoms = ["Alice", "Bob", "Charlie"] | 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] | ma_liste = [1, 2, 3] | ||||
| if ma_liste: | 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 = [] | 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") | print("mon_autre_liste est vide") | ||||
| # affiche: 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 | * Elles ont la même taille | ||||
| * Tous leurs éléments sont égaux un à un en respectant l'ordre:: | * 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). | 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": | for c in "vache": | ||||
| print(c) | print(c) | ||||
| .. code-block: console | |||||
| .. code-block:: console | |||||
| v | v | ||||
| a | a | ||||
| @@ -21,20 +21,26 @@ On peut tester si un caractère est présent:: | |||||
| print("e" in "vache") | print("e" in "vache") | ||||
| # affiche: True | # affiche: True | ||||
| print(x" in "vache") | |||||
| print("x" in "vache") | |||||
| # affiche: False | # 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" | prénom = "Charlotte" | ||||
| l = prénom[0] | l = prénom[0] | ||||
| print(l) | print(l) | ||||
| # affiche: "C" | # 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" | prénom[0] = "X" | ||||
| # erreur: TypeError | # erreur: TypeError | ||||
| @@ -42,9 +42,9 @@ Consignes | |||||
| * À ce stade, vous devriez constater plusieurs problèmes: | * À 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 | * 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. | Le but de l'exercice est de corriger ces 3 problèmes. | ||||
| @@ -6,8 +6,8 @@ Chapitre 6 - Listes | |||||
| ./01-bases.rst | ./01-bases.rst | ||||
| ./02-iteration.rst | ./02-iteration.rst | ||||
| ./03-strings.rst | |||||
| ./04-booléens.rst | |||||
| ./03-booléens.rst | |||||
| ./04-strings.rst | |||||
| ./05-exercice.rst | ./05-exercice.rst | ||||