• 4 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 03/06/2021

Répétez une action grâce aux boucles

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Retournons à notre condition principale. J’ai une bonne nouvelle : saviez-vous que nous pouvions la simplifier en utilisant une boucle ? Hé oui !

Une boucle (loop en anglais) est une action qui se répète automatiquement un certain nombre de fois.

Prenons un exemple de la vie de tous les jours. Vous organisez une soirée ‘Pirates vs Mousquetaires’ (pourquoi pas) et vous envoyez une invitation à 300 personnes. La première manière, très fastidieuse, est d’envoyer un mail individuel à toutes ces personnes. Etant assez feignant·e, vous décidez d’envoyer un mail groupé.

Le programme va faire le travail à votre place. Il va envoyer un mail à chaque personne de votre liste jusqu’à arriver à la fin ! Il entre ainsi dans une boucle qui commence par la première personne de la liste et qui finit par la dernière. Chaque itération correspond à l’envoi d’un mail.

Python nous offre deux boucles principales :  while  et  for . Commençons par la boucle  while  dans notre programme.

La boucle while

While est la traduction de “tant que...”. Concrètement, la boucle s’exécutera tant qu’une condition est remplie (donc tant qu’elle renverra la valeur True). Reprenons le cas de notre programme de citations: nous affichons une citation tant que la réponse de l’utilisateur n’est pas B.

while user_answer !=B’:
print(get_random_item_in(program['quotes']))

Si nous reprenons tout notre code…

quotes = ["Ecoutez-moi, Monsieur Shakespeare, nous avons beau être ou ne pas être, nous sommes !", "On doit pouvoir choisir entre s'écouter parler et se faire entendre."]
characters = ["alvin et les Chipmunks", "Babar", "betty boop", "calimero", "casper", "le chat potté", "Kirikou"]
def get_random_item_in(my_list):
# get a random number
item = my_list[0] # get a quote from a list
return item # return the item
user_answer = "A"
while user_answer != "B":
print(get_random_item_in(quotes))

Voilà. Nous avons réduit nos 6 lignes de code à 2 ! (et supprimé la petite blague, mais personne ne va s’en plaindre…)

Hé oui : nous sommes dans une boucle infinie ! La valeur de  user_answer  étant  A , et la boucle ne se terminant que si  user_answer  est égal à  B , le programme ne se termine jamais… 😱

En attendant de voir comment interagir avec l’utilisateur, définissons la variable à la fin de notre programme pour fermer la boucle.

quotes = ["Ecoutez-moi, Monsieur Shakespeare, nous avons beau être ou ne pas être, nous sommes !", "On doit pouvoir choisir entre s'écouter parler et se faire entendre."]
characters = ["alvin et les Chipmunks", "Babar", "betty boop", "calimero", "casper", "le chat potté", "Kirikou"]
def get_random_item_in(my_list):
# get a random number
item = my_list[0] # get a quote from a list
return item # return the item
user_answer = "A"
while user_answer != "B":
print(get_random_item_in(quotes))
user_answer = "B"

La boucle for

Maintenant imaginons que nous voulons utiliser une boucle pour mettre en majuscule chaque nom de personnage. La boucle while n’est pas vraiment utilisable car n’avons pas de condition. Nous voulons juste effectuer une action en boucle.
Dans ce cas, la boucle  for  est plus adaptée. Voici sa syntaxe :

for item in a_list:
# do something

Nous allons pouvoir agir sur chaque item ! Par exemple :

for quote in quotes:
quote.capitalize()

Nous venons tout juste de voir la méthode  capitalize()  pour mettre en majuscule le premier mot d’une chaîne de caractères. Si vous essayez d’utiliser cette même méthode avec un nombre, Python vous affichera une belle erreur :

Pourquoi ? Cela paraît logique : on ne peut mettre en majuscule que des mots… Il y a donc des fonctions réservées à certains types d’objets. C’est ce que nous appelons des méthodes. Découvrons-les en détail dans les prochains chapitres !

Code du chapitre

Retrouvez le code de ce chapitre sur le dépôt GitHub en cliquant ici

Exemple de certificat de réussite
Exemple de certificat de réussite