Aller au contenu

Les indices d'une chaîne de caractères

Les indices des caractères d'une chaîne

Chaque caractère d'une chaîne est numéroté, la numérotation commence à 0.

caractères 'c' 'o' 'u' 'c' 'o' 'u'
indices 0 1 2 3 4 5

Ainsi "coucou"[0] est le caractère 'c', "coucou"[1] est le caractère 'o', etc...

Exercice

Ouvrir la console Python, entrer l'affectation v = "bouh !".

1) Entrer v[0], v[1] et noter le résultat.
2) Il y a un caractère espace entre 'h' et '!'. Quel est l'indice de ce caractère espace ?
3) Quel est le dernier caractère de la chaîne étiquetée v ?
4) Quel est l'indice du dernier caractère de la chaîne étiquetée v ?

Solution

bouh

bouh

Le dernier caractère est !, il a pour indice 5 (car il y a 6 caractères et que l'on numérote à partir de 0).

Si l'on entre v[6], on obtient l'indication d'une erreur string index out of range qui signifie que l'on a entré un indice qui se trouve au-delà des indices possibles pour cette chaîne.

La longueur

A retenir

Une chaîne de n caractères est appelée chaîne de longueur n.
Les caractères de cette chaîne sont numérotés (indicés) de 0 à n-1.

Exercice

Un pseudocode:

v ← "un algorithme"
a ← longueur(v)
  1. Quelle est la valeur étiquetée a après ces lignes ?
  2. En python, le pseudocode ci-dessus se traduit par:
v = "un algorithme"
a = len(v)

Entrer ces deux lignes en console et vérifier la valeur d'identifiant a.

Note

Le nom de la fonction python len est une abréviation du mot anglais length.

Exercice

On affecte le mot "informatique" à la variable m:

En python: m = "informatique"

  1. Quel est l'indice de la lettre "o" ?
  2. Quel est l'indice du dernier caractère ?
  3. Quelle est la longueur de la chaîne étiquetée m ?
  4. Antoine veut afficher le dernier caractère de la chaîne d'identifiant m. Il écrit en console:
>>> m = 'informatique'
>>> m(11)

Obtiendra-t-il le dernier caractère ? Quelle erreur a-t-il commise ?

Solution
  1. "o" a pour indice 3.
  2. Le dernier caractère (la lettre "e") a pour indice 11.
  3. longueur 12.
  4. Il faut utiliser des crochets et non des parenthèses: m[11] et non m(11).

Exercice

1) Pour une chaîne quelconque d'identifiant m, exprimer l'indice du dernier caractère en fonction de la longueur de la chaîne.

Solution

indice du dernier caractère = longueur(m)-1

2) Antoine veut récupérer le dernier caractère d'une chaîne d'identifiant m. Il essaie avec le code python dernier = m[len[m]-1].
Après cette affectation, l'identifiant dernier désignera-t-il le dernier caractère de la chaîne d'identifiant m ? Essayer en console avec une chaîne de votre choix.

Solution

Non, erreur : il faut écrire len(m) (parenthèses et non crochets).

3) Une chaîne a pour identifiant m. L'affectation k = len(m-1) a-t-elle un sens ? Expliquer.

Solution

Non. m désigne une chaîne, donc m-1 est une tentative de soustraction d'une chaîne et d'un nombre. Cela n'a aucun sens.

4) Une chaîne a pour identifiant m. Quel est le résultat obtenu avec la tentative d'affectation suivante: z = m[len(m)]-1 ? Expliquer.

Solution

m[len(m)] déclenche une erreur car il n'y a pas de caractère d'indice len(m). Le dernier caractère a pour indice len(m)-1.