Les chaînes
Introduction
Une chaîne de caractère est une variable qui contient du texte, un
ensemble de caractères qui se suivent dans un ordre précis. Elles sont
définies entre guillemets (double quote) "
, ou entre apostrophes
(simple quote) '
Syntaxe
L’identificateur (le nom) d’une chaîne de caractères suit les mêmes règles que les identificateurs de variables. On définit une chaîne vide comme suit:
ma_chaîne = ""
autre_chaîne = ''
Sinon, une chaîne de caractères peut comporter des elements quelconques :
nom = "Ahmed"
ville = 'Rabat'
age = "20"
message = "Bonjour tout le monde"
On peut faire les operations de concaténation +
et de répétition *
sur une chaîne de caractères:
ch1 = "hello "
ch2 = ch1 + "Ahmed"
# Donnera la chaîne "hello Ahmed"
ch3 = ch1 * 3
# Donnera la chaîne "hello hello hello"
Les chaînes de caractères sont indexes de la même manière que les listes
# 01234 <--- l'indice de chaque caractère
ch = "hello"
Pour accéder aux elements de la chaîne de caractères:
ch = "Bonjour tout le monde"
print(ch[3]) # Affichera "j"
print(ch[0]) # Affichera "B"
print(ch[7]) # Affichera " "
PS: les espaces sont aussi des caractères et ont leurs propres indices.
Les chaînes sont non modifiable
ch = "Bonjour"
ch[1] = "a"
# ERREUR Les chaînes sont non modifiable
Ajout d’un caractère
Pour ajouter un caractère a une chaîne, on ne peut pas modifier la chaîne, donc on crée une nouvelle chaîne a partir de la concaténation de la chaîne original et la chaîne a ajouter
ch = "Bonjour"
ch = ch + " tout le monde"
# Donnera "Bonjour tout le monde"
Taille d’une chaîne
Pour obtenir la taille d’une chaîne, on utilise la fonction len()
ch = "Bonjour"
print(len(ch)) # Affichera 7
ch = " Bonjour "
print(len(ch)) # Affichera 9
Les elements d’une chaîne ch
sont donc indexes de 0
a len(ch)-1
.
Pour accéder au dernier élément d’une chaîne : ch[len(ch)-1]
Indexage négatif
Pour accéder aux caractères de la chaîne, on peut utiliser l’indexage
négatif. Dans ce cas les caractères de la chaîne sont indexe du dernier
caractère -1
, au premier -len(ch)
ch = "Bonjour"
print(ch[-2]) # Affichera "u"
L’indexage négatif revient a retrancher len(ch)
de l’indice positif,
par exemple le caractère d’indice 0 peut aussi être indexe par
-len(ch)
.
Méthodes et fonctions sur les chaînes de caractère
len(ch)
permet d’obtenir le nombre d’elements d’une chaîne.ch.count(s)
permet de compter le nombre d’occurrence de la sous-chaînes
dansch
ch.find(s)
renvoie l’indice de la sous-chaînes
dans la chaînech
.ch.replace(a, b)
renvoie une nouvelle chaîne ou la sous-chaînea
est remplace parb
ch.strip()
supprime les espaces inutiles au début et a la fin de la chaînech.lower()
convertit la chaîne en minusculech.upper()
convertit la chaîne en majusculech.capitalize()
convertit la première lettre de la chaîne en majusculech.isalpha()
détermine si la chaîne est constitue que de lettres (renvoieTrue
ouFalse
)ch.isdigit()
détermine si la chaîne est constitue que de chiffres (renvoieTrue
ouFalse
)ch.isupper()
détermine si la chaîne est constitue que de majuscules (renvoieTrue
ouFalse
)ch.islower()
détermine si la chaîne est constitue que de minuscules (renvoieTrue
ouFalse
)
Parcours d’une chaîne
On peut parcourir une chaîne de caractère comme suit :
for i in range(len(ch)):
print(i, ch[i])
Ou encore :
for i in ch:
print(i)
Les tranches de chaînes
On peut prendre des tranches de chaînes comme on fait pour les listes.
Une tranche d’une chaîne est définie par un indice de début d
, indice
de fin f
, et le pas p
utilise, avec la syntaxe : ch[d:f:p]
ou
ch[d:f]
pour un pas de 1
Exemple
ch = "Bonjour"
print(ch[1:3]) # Affichera "on"
Si on omet l’indice de début, la tranche commencera du début de la chaîne. De même, si on omet l’indice de fin, la tranche finira a la fin de la chaîne.
ch = "Bonjour"
print(ch[3:]) # "jour"
print(ch[:2]) # "Bo"
print(ch[3:0:-1]) # "jno"
print(ch[::-1]) # permet d'inverser la chaîne "ruojnoB"
Si les indices début ou fin sont dans le mauvais ordre, on obtient une chaîne vide :
print(ch[3:2]) # Affichera ""