Les listes et les boucles for

Les listes

Une liste est une collection d'éléments rangés dans l'ordre.

En francais : pain, lait, oeufs est une liste

Le premier élément = pain, deuxième = lait, troisième = oeufs

# En python, syntaxe :
liste1 = ["a", "b", "c"]
# On peut TOUT mettre dans une liste
liste2 = [1,2,3, 
      3.14,
     "coucou",
      True, False,
      [42,11]
     ]
# En python, les positions des éléments d'une
# liste commencent à ZERO !!!!!!
# 1er élément = position zéro 
# 2eme element = position 1
# ...

liste3 = [1,2,3,4,5,6,7,8,9]

# Pour lire la valeur d'un élément de liste
# à une position donnée on utilise la notation
#
#        nomdelaliste[position]

print(liste3[0]) # affiche le 1er élément de la liste liste3
# pour afficher le 9
print(liste3[8]) # 9 eme position = 8 en python
1
9
# Exo : avec liste2, afficher "coucou"
print(liste2[4])


print(liste2[7]) # on recupere la liste dans la liste
print(liste2[7][1]) # on recupere le 2eme element de la liste
# dans la liste
coucou
[42, 11]
11
# Pour ajouter un élément à la fin d'une liste
liste3 = [1,2,3,4,5,6,7,8,9]
liste3.append(10) # ajoute 10 à la fin de la liste liste3
print(liste3)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Pour supprimer un élément à la fin d'une liste
liste3 = [1,2,3,4,5,6,7,8,9]
liste3.pop()
print(liste3)
[1, 2, 3, 4, 5, 6, 7, 8]
# Pour ajouter un élément n'importe où dans
# une liste
liste3 = [1,2,3,4,5,6,7,8,9]
liste3.insert(4, "coucou") # liste.insert(position, valeur)
print(liste3)
[1, 2, 3, 4, 'coucou', 5, 6, 7, 8, 9]
# Pour supprimer un élément n'importe où dans
# une liste
liste3 = [1,2,3,4,5,6,7,8,9]
del liste3[4] # supprime l'élément en position 4
print(liste3)

# autre possibilité
liste3 = [1,2,3,4,5,6,7,8,9]
liste3.pop(4) # pop la position
print(liste3)
[1, 2, 3, 4, 6, 7, 8, 9]
[1, 2, 3, 4, 6, 7, 8, 9]
# Pour modifier un élément d'une liste
# on va assigner une nouvelle valeur
# à la position
liste3 = [1,2,3,4,5,6,7,8,9]
liste3[4] = "coucou"
print(liste3)
[1, 2, 3, 4, 'coucou', 6, 7, 8, 9]

SUR PAPIER puis ordi : écrire le contenu de l4 après chaque étape

liste4 = [1,2,3] # [1,2,3]
liste4.append(45) # [1,2,3,45]
liste4.insert(3, "youpi") # [1,2,3,"youpi", 45]
del liste4[0] # [2,3,"youpi",45]
liste4[1] = ["a","b"]  # [2, ["a","b"], "youpi, 45] 
liste4[1].append(11) # # [2, ["a","b", 11], "youpi, 45]
print(l4)
# VÉRIFICATION DE L'EXO SUR ORDI
liste4 = [1,2,3] # [1,2,3]
liste4.append(45) # [1,2,3,45]
liste4.insert(3, "youpi") # [1,2,3,"youpi", 45]
del liste4[0] # [2,3,"youpi",45]
liste4[1] = ["a","b"]  # [2, ["a","b"], "youpi, 45] 
liste4[1].append(11) # # [2, ["a","b", 11], "youpi, 45]
print(liste4)
[2, ['a', 'b', 11], 'youpi', 45]

EXO 2:

liste5 = [True, False]
liste5.append(11)  # [True, False, 11]
liste5.pop(1) # [True, 11]
liste5.insert(1, "coucou") # [True, "coucou", 11]
liste5.append([3,4]) # [True, "coucou", 11, [3,4]]
liste5[3].pop() # [True, "coucou", 11, [3]]
print(liste5)
# VÉRIFICATION DE L'EXO 2 SUR ORDI
liste5 = [True, False]
liste5.append(11)  # [True, False, 11]
liste5.pop(1) # [True, 11]
liste5.insert(1, "coucou") # [True, "coucou", 11]
liste5.append([3,4]) # [True, "coucou", 11, [3,4]]
liste5[3].pop() # [True, "coucou", 11, [3]]
print(liste5)
[True, 'coucou', 11, [3]]
# Pour connaitre le nombre d'éléments dans une liste
# : fonction len()

liste3 = [1,2,3,4,5,6,7,8,9]
print(len(liste3)) # affiche 9 car 9 éléments
9
# Pour récupérer le dernier élément d'une liste
liste3 = [1,2,3,4,5,6,7,8,9]
print( liste3[ len(liste3)-1 ] )

# le python a un raccourci pour ça 
print (liste3[-1]) # pareil que print(liste3[len(liste3)-1])

# un nombre négatif indique la position en partant de la fin
# -1 = dernier élément
# -2 = avant dernier élément
9
9
# Partie de morpion : 
# un morpion = liste de 3 lignes
# une ligne = liste de 3 cases
# 1 case = 1 nombre (0=vide, 1=croix, 2=rond)
# Faire une partie de morpython

morpion = [[0,0,0],[0,0,0],[0,0,0]]
print(morpion)
morpion[1][1] = 1
print(morpion)
morpion[0][0] = 2
print(morpion)
morpion[2][0] = 1
print(morpion)
morpion[0][2] = 2
print(morpion)
morpion[0][1] = 1
print(morpion)
morpion[2][1] = 2
print(morpion)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
[[2, 0, 0], [0, 1, 0], [0, 0, 0]]
[[2, 0, 0], [0, 1, 0], [1, 0, 0]]
[[2, 0, 2], [0, 1, 0], [1, 0, 0]]
[[2, 1, 2], [0, 1, 0], [1, 0, 0]]
[[2, 1, 2], [0, 1, 0], [1, 2, 0]]

Les boucles for

On récupère successivement chaque élément d'une liste dans une variable pour faire ce qu'on veut avec.

liste3 = [1,2,3,4,5,6,7,8,9]

# Prendre chaque élément de liste3
# et le mettre dans toto
# successivement
for toto in liste3:
    if toto % 2 == 0: # si toto est pair
        print(toto)
2
4
6
8
# Exemple : affichage morpion
for ligne in morpion:
    print(ligne)
[2, 1, 2]
[0, 1, 0]
[1, 2, 0]
# Exercice : créer une fonction affiche_ligne qui
# prend une ligne en argument et qui l'affiche
# joliment ([ ][x][o])
def affiche_ligne(ligne):
    # Affiche la ligne au format
    # [ ][x][o]
    for cellule in ligne:
        if cellule == 0:
            print("[ ]", end="")
        if cellule == 1:
            print("[x]", end="")
        if cellule == 2:
            print("[o]", end="")
    print() # pour passer à la ligne à la fin
        

affiche_ligne([0,1,2]) # doit afficher [ ][x][o]
[ ][x][o]
for ligne in morpion:
    affiche_ligne(ligne)
[o][x][o]
[ ][x][ ]
[x][o][ ]