Les structures de contrôle

Les structures de contrôle permettent d'exécuter du code soit

  • de manière conditionnelle
  • en boucle

Les boucles consistent à définir du code qui sera répété plusieurs fois. Il existe deux structures pour deux cas différents :

  • La structure for permet d'itérer sur des collections.

  • La structure while exécute du code tant qu'une condition est vrai.

Exercices

Affichez chaque caractère d’une chaine en utilisant la boucle for


In [ ]:
collection = "Arthur"
for char in collection:
    print(char)

Affichez chaque élément d’une liste en utilisant la boucle for


In [ ]:
collection = ["Arthur", "Lancelot", "Robin"]
for element in collection:
    print(element)

Soit la liste des 10 premier épisodes de la saison 12 de Big Bang Theory. Chacun a une durée de 23 minutes.


In [ ]:
bbt_s12 = ["The Conjugal Configuration",
           "The Wedding Gift Wormhole",
           "The Procreation Calculation",
           "The Tam Turbulence",
           "The Planetarium Collision",
           "The Imitation Perturbation",
           "The Grant Allocation Derivation",
           "The Consummation Deviation",
           "The Citation Negation",
           "The VCR Illumination"]

Vous avez écrit dans les exercices sur les listes les instructions pour calculer le nombre d'épisodes à visionner en 2 heures et l'instruction pour retourner afin de l'afficher et supprimer le premier épisode de la liste. Vous aviez répété cette instruction autant de fois que nécessaire à la main.

Écrivez donc maintenant à l'aide d'une boucle ces instructions.


In [ ]:
for _ in range(120 // 23):
    print(bbt_s12.pop(0))

Boucles et dictionnaires : Compteur de mots (exercice avancé)

Soit la chaine suivante.


In [ ]:
SENTENCE = 'Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.'

Nous souhaitons savoir combien de mots commencent par la lettre t (vous pouvez tester avec la méthode "mot".startswith('t').


In [ ]:
t_count = 0

for word in SENTENCE.lower().split():
    if word.startswith('t'):
        t_count += 1
        
print(t_count)

Nous souhaitons générer un dictionnaire contenant la fréquence de tous les mots de la chaîne.


In [ ]:
# Ceci est l'algorythme C classique

words_count = dict()

for word in SENTENCE.replace('.', '').lower().split():
    if word in words_count:
        words_count[word] += 1
    else:
        words_count[word] = 1
        
print(words_count)

In [ ]:
# Ceci est l'utilisation d'idiome Python

words_count = dict()

for word in SENTENCE.replace('.', '').lower().split():
    words_count[word] = words_count.get(word, 0) + 1
        
print(words_count)