Adloun

NSI (première) · Chapitre 4 · Application directe du cours

n° 51

Les types construits · P-uplets, déballage et compréhensions · niveau 1 (application)

Énoncé

Écrire par compréhension : les cubes des entiers de 1 à 20 ; les multiples de 7 inférieurs à 100 ; les longueurs des mots d'un tableau de chaînes.

Corrigé


cubes = [i**3 for i in range(1, 21)]
# [1, 8, 27, 64, ..., 8000]  -- 20 elements, le dernier est 20**3 = 8000

mult7 = [i for i in range(100) if i % 7 == 0]
# [0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98]  -- 15 elements

mots = ["chat", "informatique", "de", "tableau"]
longueurs = [len(mot) for mot in mots]
# [4, 12, 2, 7]

Trois points d'attention, un par ligne.

  • Les cubes : range(1, 21) et non range(1, 20) — la borne de range est exclue, et l'on veut inclus. Contrôle : éléments, le dernier vaut .
  • Les multiples de : en fait partie, car . L'oublier est l'erreur classique. Il y en a ( à ).
  • Les longueurs : la compréhension porte ici sur un autre tableau, pas sur un range. C'est la forme la plus utile en pratique.

Une seconde écriture des multiples de , sans filtre :


mult7 = [7 * k for k in range(15)]

Les deux donnent le même tableau — on l'a vérifié. La seconde ne teste rien : elle engendre directement. C'est plus rapide, mais il faut savoir d'avance qu'il y en a , ce qui est un calcul de plus. Quand la borne est connue, engendrer ; quand elle ne l'est pas, filtrer.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →