Aller au contenu

Accéder aux caractères

Chaque caractère de la chaîne est indexé, c'est-à-dire repéré par un nombre (un numéro), ce qui permet d'avoir un accès rapide au caractère désiré :

Indice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ma_phrase= " V o i c i u n e p h r a s e "

Attention ! Ce numéro débute par 0. On l'appelle indice.

Récupérer une lettre depuis un indice

Soit s une chaîne de caractères, et i un indice. s[i] est la valeur du caractère à l'indice i dans s.

Par exemple :

lettre = ma_phrase[4]
print(lettre)  # i
print(ma_phrase[0])  # V

Tranchage (sans danger)

Mettons la main à la pâte pour découvrir un fabuleux et complexe outil : le tranchage (slice en anglais).

Le slice permet de récupérer un sous-ensemble d'une chaîne de caractères. Il existe trois paramètres pour le slice :

Paramètre Valeur par défaut
Indice de début 0
Indice de fin (exclu) Dernier + 1
Pas 1

Tranchage

La syntaxe consiste à séparer les paramètres avec des : en respectant l'ordre du tableau ci-dessus, et à les écrire comme les indices (entre crochets) : chaine[debut:fin:pas].

Si on omet un paramètre, sa valeur par défaut sera prise en compte : chaine[:4:2] est équivalent à chaine[0:4:2].

Si on omet le pas, on peut enlever les : entre l'indice de fin et le pas : chaine[1:3] est équivalent à chaine[1:3:] et à chaine[1:3:1].

chaine = "abcde"
print(chaine[1:3])  # bc
print(chaine[:2])  # ab
print(chaine[4:2:-1])  # ed

À l'instar de l'instruction range(), le slice accepte aussi les pas négatifs.

Exercice

Anticiper les résultats des instructions suivantes, puis les tester en Python :

ma_phrase[7]
ma_phrase[18]
ma_phrase[-1]
ma_phrase[-5]
ma_phrase[3:11]
ma_phrase[:11]
ma_phrase[3:]
ma_phrase[::2]
ma_phrase[len(ma_phrase)]