En algorithmique, les listes sont souvent parcourues pour extraire des informations utiles. Par exemple, on peut vouloir compter combien d’éléments répondent à un critère (combien d’animaux dans une liste d’objets variés), ou encore trouver le minimum et le maximum d’une série de valeurs. Ces algorithmes reposent toujours sur le même principe : parcourir la liste élément par élément en mettant à jour un compteur ou une valeur courante.
En Python, la boucle for
permet d’itérer sur un conteneur
(liste, chaîne de caractères, dictionnaire, ensemble...).
À chaque tour de boucle, la variable prend la valeur du prochain élément du conteneur,
ce qui permet de traiter facilement chaque élément un par un.
fruits = ["pomme", "banane", "cerise"]
for fruit in fruits:
print(fruit)
Ici, la variable fruit
vaudra successivement "pomme"
,
"banane"
, puis "cerise"
.
C’est l’outil le plus pratique pour examiner chaque élément d’une collection.
A faire dans le cahier
On considère la boucle suivante :
liste = [9, 6, 4, 0]
for machin in liste:
print(machin)
machin
au cours de l’exécution ?A faire dans le cahier
On considère la boucle suivante :
liste = [9, 6, 4, 0]
for machin in range(len(liste)):
print(liste[machin])
machin
?En Python, il existe deux façons classiques de parcourir une liste :
for e in liste:
:
à chaque tour de boucle, la variable prend directement la valeur de l’élément de la liste.
→ On utilise cette forme lorsqu’on a besoin uniquement des éléments.
for i in range(len(liste)):
:
à chaque tour de boucle, la variable prend la valeur de l’indice (0, 1, 2, …).
On accède alors à l’élément par liste[i]
.
→ On utilise cette forme lorsqu’on a besoin de l’indice (sa position dans la liste).
Exemple :
fruits = ["pomme", "banane", "cerise"]
# Accès direct aux éléments
for e in fruits:
print(e)
# Accès par les indices
for i in range(len(fruits)):
print(i, fruits[i])
Créer une fonction affiche_liste
qui prend une liste de nombres en paramètre et qui les affiche un par un.
Tests :
# Tests
Affichage :
Console:
Compléter la fonction somme
ci-dessous qui prend une liste de nombres en paramètre et retourne la somme de ces nombres.
Si la liste est vide, elle renverra le string "Erreur, liste vide"
.
Exemples :
>>> somme([1,2,3,4,5,6])
21
>>> somme([5])
5
>>> somme([])
"Erreur, liste vide"
Tests :
# Tests
Affichage :
Console:
Créer une fonction moyenne_liste
qui prend une liste de nombres en paramètre et qui retourne leur moyenne.
Si la liste est vide, la fonction devra renvoyer le string "Erreur, liste vide"
.
Tests :
# Tests
Affichage :
Console:
Compléter une fonction Python nommée incrementer_elements
qui prend une liste de nombres en entrée et renvoie une nouvelle liste contenant chaque élément augmenté de 1.
Tests :
# Tests
Affichage :
Console:
Un magasin enregistre le prix de ses articles.
Écrire une fonction articles_pas_chers
qui prend une liste de prix (nombres positifs) et retourne le nombre d’articles coûtant moins de 10 euros.
Exemple :
>>> articles_pas_chers([5, 12, 8, 20, 3, 15, 7])
4
Tests :
# Tests
Affichage :
Console:
Un professeur a relevé les notes de ses élèves.
Écrire une fonction admis
qui prend en paramètre une liste de notes (valeurs entières entre 0 et 20) et retourne le nombre d’élèves ayant obtenu au moins 10.
Exemple :
>>> admis([12, 8, 14, 9, 10, 7, 18])
4
Tests :
# Tests
Affichage :
Console:
Créer une fonction caracteres
qui prend une chaîne de caractères texte
en paramètre et qui renvoie une liste contenant tous les caractères de cette chaîne.
Tests :
# Tests
Affichage :
Console:
Créer une fonction caracteres_uniques
qui prend une chaîne de caractères texte
en paramètre et qui renvoie une liste contenant les caractères de cette chaîne, chaque caractère n’apparaissant qu’une seule fois.
Tests :
# Tests
Affichage :
Console:
Créer une fonction sans_espace
qui prend une chaîne de caractères texte
en paramètre et qui renvoie une liste contenant les caractères de cette chaîne, mais sans inclure les espaces.
Exemple :
>>> sans_espace("a b c")
['a', 'b', 'c']
Tests :
# Tests
Affichage :
Console:
Compléter la fonction trouve_les_mots
qui prend une chaîne de caractères texte
et qui renvoie une liste contenant les mots (séparés par des espaces).
Exemple :
>>> trouve_les_mots("bonjour le monde")
['bonjour', 'le', 'monde']
Tests :
# Tests
Affichage :
Console:
En Python, il existe une manière rapide et élégante de créer des listes : la compréhension de liste.
Elle permet de générer une nouvelle liste à partir d’une autre, en appliquant une règle et éventuellement une condition.
nouvelle_liste = [règle for variable in liste_existante if condition]
Par exemple, pour obtenir les carrés des nombres pairs entre 0 et 9 :
nombres = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
carres_pairs = [n**2 for n in nombres if n % 2 == 0]
print(carres_pairs) # Résultat : [0, 4, 16, 36, 64]
Compléter l’expression ci-dessous pour créer une liste doubles
contenant les doubles des nombres de 1 à 10 en utilisant une liste par compréhension.
Exemple attendu :
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
Tests :
# Tests
Affichage :
Console:
Un magasin vend 10 articles dont les prix sont les entiers de 1 à 10 euros.
Compléter le code ci-dessous pour créer une liste prix_reduits
qui contient les prix après une réduction de 20 % (multiplier chaque prix par 0.8
), en utilisant une liste par compréhension.
Exemple attendu (arrondi à 1 décimale) :
[0.8, 1.6, 2.4, 3.2, 4.0, 4.8, 5.6, 6.4, 7.2, 8.0]
Tests :
# Tests
Affichage :
Console:
La recherche du minimum dans une liste consiste à identifier l'élément ayant la plus petite valeur.
Retenir dans les grande lignes que :
Compléter la fonction minimum_liste
qui prend une liste de nombres (au moins un élément) et qui retourne le plus petit élément.
Tests :
# Tests
Affichage :
Console:
Écrire la fonction maximum_liste
qui prend une liste de nombres (au moins un élément) et qui retourne le plus grand élément.
Tests :
# Tests
Affichage :
Console:
A faire dans le cahier
Voici une fonction mauvais_maximum_liste
qui prétend calculer le maximum d’une liste de nombres.
Elle initialise le maximum à 0
.
Commence par exécuter la fonction avec la liste donnée et observe le résultat : cela a l’air correct. Puis modifie la liste afin de montrer que cette fonction est en réalité fausse.
Quand tu as trouvé, explique dans ton cahier le problème.
Tests :
Affichage :
Console: