Adloun

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

Écrire taille octets(texte, encodage) qui rend le nombre d'octets…

Flottants, booléens et textes · Logique élémentaire, caractères et octets · niveau 2

Énoncé

Écrire taille_octets(texte, encodage) qui rend le nombre d'octets occupés. L'appliquer à "NSI", "café" et "π" en UTF-8, et comparer avec len(texte).

Corrigé


def taille_octets(texte, encodage):
    """Nombre d'octets occupes par texte dans cet encodage.

    Precondition : tous les caracteres de texte sont representables
    dans encodage, faute de quoi une UnicodeEncodeError est levee.
    """
    return len(texte.encode(encodage))

>>> [(m, len(m), taille_octets(m, "utf-8"))
...  for m in ("NSI", "café", "π")]
[('NSI', 3, 3), ('café', 4, 5), ('π', 1, 2)]

Lecture. "NSI" : trois caractères ASCII, trois octets, les deux comptes coïncident. "café" : quatre caractères, mais le é en coûte deux, d'où cinq octets. "π" : un caractère et deux octets — l'écart est maximal.

Contrôle : taille_octets("café", "latin-1") rend . Le même texte, deux encodages, deux tailles : la taille d'un fichier ne dit rien du nombre de caractères qu'il contient tant qu'on ignore son encodage.

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 →