Adloun

Réécrire en boucle avec append la compréhension [i for i in range(50)…

Application directe du cours · niveau 1 (application) · NSI (première), chapitre 4 — Les types construits · P-uplets, déballage et compréhensions

Énoncé

Réécrire en boucle avec append la compréhension [i for i in range(50) if i % 3 == 0 and i % 5 == 0]. Quelle version préférez-vous, et pourquoi ?

Corrigé


resultat = []
for i in range(50):
    if i % 3 == 0 and i % 5 == 0:
        resultat.append(i)
print(resultat)          # [0, 15, 30, 45]

Les deux écritures donnent [0, 15, 30, 45] : les multiples de inférieurs à — car être multiple de et de , c'est être multiple de leur plus petit commun multiple.

Laquelle préférer ? La compréhension, ici, et pour des raisons précises :

La boucle reprend l'avantage dès que le corps fait plus d'une chose : afficher au passage, compter en parallèle, s'arrêter en cours de route. On ne met pas d'effet de bord dans une compréhension. La compréhension décrit un tableau ; la boucle exécute un traitement.

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.