Adloun

La boucle for parcourt autre chose que des nombres

Exercice supplémentaire · niveau 2 · sciences numériques et technologie (seconde), chapitre 4 — Les boucles · La boucle bornée : for

Énoncé

Une boucle for peut parcourir directement une chaîne ou une liste. Écrire une fonction compte_voyelles(mot) qui compte les voyelles d'un mot, puis comparer avec la version utilisant range(len(mot)).

Corrigé

def compte_voyelles(mot):
    compteur = 0
    for lettre in mot:
        if lettre in "aeiouyAEIOUY":
            compteur = compteur + 1
    return compteur

print(compte_voyelles("anticonstitutionnellement"))   # 10

La version par indices :

for i in range(len(mot)):
    if mot[i] in "aeiouy":
        ...

Les deux fonctionnent, mais la première dit ce qu'elle fait : « pour chaque lettre du mot ». On ne passe par les indices que lorsqu'on en a besoin — pour connaître la position, ou pour comparer deux éléments voisins. C'est le même choix qui se reposera au chapitre 6 avec les listes.

Noter au passage l'opérateur in, qui teste l'appartenance et évite une longue suite de or.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.