Listes - Boucles for
#
La boucle for
permet d'accéder à tous les éléments d'une liste l'un après
l'autre.
Par position#
Dans ce cas, les éléments sont parcourus au moyen de leur index. Pour déterminer l'index du dernier élément et éviter une erreur lors de l'exécution, nous utilisons la fonction 'len(liste)' qui retourne le nombre d'élément dans une liste.
Exemple 12#
notes = [5, 5.5, 4, 5.5, 6]
# Cette boucle parcourt tous les index de la liste de 0 à la longueur de la liste - 1
for i in range(len(notes)):
print(notes[i])
Par élément#
En Python, il est possible de parcourir directement les éléments d'une liste.
Exemple 13#
notes = [5, 5.5, 4, 5.5, 6]
# Cette boucle parcourt les éléments les uns après les autres
for note in notes: # La variable note change de valeur à chaque itération
print(note)
Exercice 29#
Avant de les exécuter, déterminez ce que font les programmes suivants.
questions = ["Quelle est ta couleur préférée?", "Quel est ton animal préféré?", "Où étudies-tu?"] reponses = [] for question in questions: print(question) reponse = await input_line("Réponse: ") reponses.append(reponse) print("Tes réponses: ", reponses) if reponses[2] == "STX": print("Tu es dans la meilleure école ;-)")
notes = [5.5, 3.8, 6, 6, 3.5, 4,5] nb_notes_insuf = 0 for note in notes: if note < 4: nb_notes_insuf += 1 print("Tu as fait", nb_notes_insuf, "notes insuffisantes.")
Exercice 30#
Écrivez une programme qui génère une liste de 50 nombres entiers tirés au hasard entre 1 et 1000.
Déterminez le maximum de la liste en définissant une fonction
maximum(liste)
.Déterminez le minimum de la liste en définissant une fonction
minimum(liste)
.
# Écrivez le programme ici
Solution
1from random import randint
2
3def maximum(listes_nombres):
4 max = 0
5 for nombre in listes_nombres:
6 if nombre > max:
7 max = nombre
8 return max
9
10def minimum(listes_nombres):
11 min = 1000
12 for nombre in listes_nombres:
13 if nombre < min:
14 min = nombre
15 return min
16
17
18nombres = []
19
20# Genère la liste de 50 nombres entiers
21for _ in range(50):
22 nombres.append(randint(1, 1000))
23
24print("Le maximum est", maximum(nombres))
25print("Le minimum est", minimum(nombres))
26print(nombres)
Exercice 31#
Complétez le programme ci-dessous afin qu'il affiche correctement l'itinéraire de la manière suivante:
Début de l'itinéraire
Vas à Bulle
Vas à Riaz
Vas à Marsens
Vas à Echarlens
Vas à Charmey
Tu es arrivé!
itineraire = ["Bulle", "Riaz", "Marsens", "Echarlens", "Charmey"]
# Complétez le programme à partir de là
Solution
1itineraire = ["Bulle", "Riaz", "Marsens", "Echarlens", "Charmey"]
2print("Début de l'itinéraire")
3for ville in itineraire:
4 print("Vas à", ville)
5print("Tu es arrivé!")
Exercice 32#
Complétez le programme ci-dessous de sorte à ce qu'il compte combien de notes sont insuffisantes (c'est-à-dire inférieures à 4) dans la liste que l'utilisateur donne dans le input().
Par exemple si l'utilisateur donne la liste [3, 4.5, 5, 4.7, 1, 3.9, 5.8, 2] alors le programme devra afficher "Vous avez 4 notes insuffisantes".
Ne vous préoccupez pas de la première ligne, celle-ci permet juste de demander une liste à l'utilisateur et d'enregistrer le résultat dans la variable "notes".
from random import uniform, randint
def genere_liste_notes(nb_notes):
notes = []
for _ in range(nb_notes):
notes.append(round(uniform(1.5, 6), 1))
return notes
notes = genere_liste_notes(randint(5, 15))
print(notes)
# Complétez le progamme à partir de là
nb_notes_insuffisantes =
print(nb_notes_insuffisantes)
Solution
1print(notes)
2nb_notes_insuffisantes = 0
3for note in notes:
4 if note < 4:
5 nb_notes_insuffisantes += 1
6print(nb_notes_insuffisantes)