Itérer sur les éléments des séquences

Nous avons présentés précédement les n-uplets, les chaines et les ranges. Nous allons maintenant voir comment manipuler les éléments contenus à l’interieur. Pour cela, nous devons introduire la boucle “pour chaque”.

La boucle for

La boucle “pour chaque” permet d’exécuter un ensemble d’instructions pour chaque élément contenu dans une séquence. L’exemple suivant nous montre comment afficher les voyelles d’une chaine.




(python_for)

La boucle est composée d’une déclaration for c in chaine : et d’un bloc de code. Son fonctionnement est le suivant. Chaque caractère de la sequence chaine est associé successivement dans la variable c. Pour chaque valeur, les instructions du bloc de code sont exécutées.

De manière générale, voici la syntaxe d’une boucle for.

for variable in sequence :
    instructions
    ...
    ...

Les boucles for peuvent être utilisées avec n’importe quelle séquence dont celle que nous avons déjà vu : str, tuple et range. Voici un exemple sur un tuple.




(python_for2)

Et un autre exemple sur un range.




(python_for3)

Exercice

Nous allons mettre en oeuvre l’utilisation de boucle pour chaque.

Suite de Fibonacci

Nous voulons calculer le n-ième terme de la suite de Fibonacci. Compléter la fonction suivante qui prend en paramètre le numéro du termes que l’on souhaite calculer et renvoie sa valeur.




(python_exo1)

Palindrome

Un palindrome est un mot qui se lit de la même façon dans les deux sens : kayak, radar. Compléter la fonction suivante. Elle prend en paramètre une chaine de caractères et détermine si cette chaine est un palindrome. On supposera pour le moment que cette chaine ne contient pas d’espace, pas d’accent et que les majuscule et minuscule sont des caractères différents.




(python_exo2)

Pour traiter le cas des majuscules nous pouvons utiliser la méthodes upper. Elle permet de créer une chaine de caractères identiques mais en majuscules. On l’utilise de la façon suivante : "Une chaine".upper(). Il existe une fonction aussi la fonction lower.

Modifier la fonction is_palindrome ci-dessus afin de traiter le cas des majuscules. Si tout fonctionne bien, il ne devrait d’afficher ques de True.




(python_exo3)

Palindrome avec espace

En programmation, certains problèmes se résolvent bien en utilisant des boucles for mais d’autres fois il vaut mieux utiliser des boucles while. C’est le cas du problème des palindromes avec espaces. Dans ce cas, on ne doit pas considérer les espaces et donc les phrases suivantes sont des palindromes : “Mon nom”, “Elu par cette crapule”, “Engage le jeu que je le gagne”.

Prenez un peu de temps pour essayer d’imaginer un algorithme pour résoudre ce problème et de le coder. Si vous n’y parvenez pas, regardez la vidéo suivante qui décrit une méthode efficace.




(python_exo4)

Next Section - Les listes