
Nous allons ici discuter des chaînes de caractères et comment les manipuler. Vous utiliserez très souvent les chaînes de caractères, surtout quand vous manipulerez des fichiers. Il est donc primordial de savoir travailler avec. Le type de variable associé aux chaînes de caractères est le type « string ».
Le type « string » peut se définir comme une suite quelconque de caractères. Ces caractères peuvent être des lettres, des chiffres ou des symboles.
Manipulation de base d’une chaîne de caractère
Création de la variable
Pour créer une variable de type « string », il faut assigner du texte entre guillemets ou entre apostrophes.
ma_chaine = "Voici une chaine de caracteres entre guillemets"
autre_chaine = 'Voici une autre chaine entre apostrophes'
type(ma_chaine)
>>> str
type(autre_chaine)
>>> str
PythonVous pouvez utiliser soit les guillemets soit l’apostrophe pour définir une chaîne de caractère. La seule condition est d’utiliser le même symbole pour ouvrir et fermer la chaîne. Si votre variable possède une apostrophe, vous pourrez alors la créer en utilisant les guillemets, et vice versa. Autrement, si vous votre chaîne de caractère est quand même définie entre apostrophes et que vous en avez dans la chaîne, vous pouvez rajouter un « backslash » \ devant le caractère.
ma_chaine = "Python c'est facile !"
autre_chaine = 'La réponse est "oui" !'
ma_chaine = 'Python c\'est facile !'
ma_chaine
>>> "Python c'est facile"
PythonRajout d’un saut de ligne / tabulation
Si vous voulez insérer des sauts de ligne dans votre chaîne de caractères, nous retrouvons à nouveau le caractère backslash \. En rajoutant « \n » dans la chaîne, la combinaison sera interprétée comme un saut de ligne. Un moyen mnémotechnique de s’en rappeler est de penser à « new line ». Pour la tabulation, c’est la combinaison « \t ».
chaine1 = 'Voici une chaine de caractère \nsur deux lignes'
chaine2 = "Voic une chaine \t avec une tabulation"
print(chaine1)
>>> Voici une chaine de caractère
>>> sur deux lignes
print(chaine2)
>>> Voic une chaine avec une tabulation
PythonAttention à la casse !
La casse ??? C’est quoi ça la casse ? La casse est le respect des lettres minuscules et majuscules. En effet, les lettres ne sont pas codées de la même manière si elles sont en minuscules ou majuscules. Si vous les comparez, vous verrez que Python considère qu’elles sont différentes.
chaine1 = 'Python'
chaine2 = 'python'
chaine1 == chaine2
>>> False
PythonLes opérations sur les chaînes de caractères
Dans cette section, nous allons voir quelques opérations utiles sur les chaînes de caractères.
Concaténer de chaînes de caractères
Pour concaténer deux chaînes de caractères, rien de plus facile, il suffit d’utiliser l’opérateur « + » comme pour une addition.
chaine1 = "Bienvenue"
chaine2 = " à tous !"
chaine = chaine1 + chaine2
chaine
>>> 'Bienvenue à tous !'
PythonQuand on sait qu’on peut utiliser l’opérateur « + » pour concaténer des chaînes de caractères, on est tenté d’utiliser la soustraction également. Malheureusement, Python ne l’accepte pas. Egalement, il est possible de répéter une chaîne avec l’opérateur » * « .
chaine = "abc"
repetition = chaine * 4
repetition
>>> 'abcabcabcabc'
PythonLongueur d’une chaine
Pour manipuler une chaîne de caractères, vous aurez certainement besoin de connaitre sa taille. Pour se faire, vous avez la fameuse fonction « len() ».
chaine = "abc"
len(chaine)
>>> 3
PythonAccéder aux caractères individuels
Une chaîne de caractères est une variable constituée de données simples. Cette donnée simple est tout simplement un caractère. En fonction des circonstances, vous aurez besoin de traiter la chaîne de caractères dans son ensemble ou d’accéder à une partie de celle-ci. Python considère la chaîne de caractères comme une séquence. Ainsi, chaque caractère est accessible via son indice. Cette manipulation est similaire aux listes. J’explique le fonctionnement des listes dans cet article. Pour accéder à un caractère, il suffit alors d’utiliser le nom de la variable suivi de son indice entre crochets. On rappelle que, comme pour les listes, les indices comme à 0.
string = "abc"
string[1]
>>> 'b'
PythonVoici une image qui illustre comment accéder aux différents caractères de la chaîne.

Tout comme les listes, vous pouvez aussi extraire une portion de la chaîne de caractères. Voici plusieurs exemples.
string = "abcdef"
string[1:3]
>>> 'bc"
string[:3]
>>>'abc"
string[3:]
>>> 'def'
string[-1]
>>> 'f'
string[-3:]
>>> 'def'
PythonConversion d’une chaîne de caractères en valeur numérique
Lorsque vous récupérerez des données depuis des fichiers texte, il est fort possible que le type de variable soit une chaîne de caractère même si vous savez que c’est un nombre. Les fonctions « int() » et « float() » vous permettront de récupérer la valeur numérique.
nombre_entier = "123"
nombre_entier + 1
>>> TypeError: can only concatenate str (not "int") to str
int(nombre_entier) + 1
>>> 124
nombre_reel = "123.456"
float(nombre_reel) + 1
>>> 124.456
PythonLes opérateurs « in » et « not in »
Ces deux opérateurs ont déjà été vus dans l’article sur les listes. L’utilisation de ces opérateurs permet de renvoyer une valeur booléenne en testant si la première variable se trouve dans la seconde (ou l’inverse). Attention ! Ces opérateurs sont sensibles à la casse (voir plus haut pour la définition).
"voiture" in "ma super voiture peugeot 308"
>>> True
"Peugeot" in "ma super voiture peugeot 308" # attention à la casse avec le P majuscule
>>> False
"avion" not in "ma super voiture peugeot 308" # Il est vrai que "avion" n'est pas dans la variable
>>> True
PythonLes méthodes utiles pour les chaînes de caractères
upper() / lower()
Ces deux méthodes permettent de mettre toute la chaîne de caractères en majuscule ou minuscule respectivement. Elles sont très pratiques pour éviter des erreurs dues à la casse et cela peut vous éviter d’avoir à écrire des lignes de code pour gérer les différents cas.
var = "Ma suPer Variable EcriTe BizArrement"
var.upper()
>>> 'MA SUPER VARIABLE ECRITE BIZARREMENT'
var.lower()
>>> 'ma super variable ecrite bizarrement'
Pythonisalpha() / isnumeric()
Ces deux méthodes pourront être très utiles pour vérifier que vous travaillez sur un chaîne de caractères avec des lettres ou des nombres.
var = "MaSuperVariable"
var_espace = "Ma Super Variable"
var.isalpha()
>>> True
var_espace.isalpha() # Renvoie Faux à cause des espaces => voir la méthode replace()
>>> False
"123".isnumeric()
>>> True
"123.456".isnumeric() # la méthode ne prend pas en compte les nombres réels
>>> False
Pythonfind(sub[, start[, end]]) / rfind(sub[, start[, end]])
Si vous souhaitez savoir où se trouve une sous-chaîne dans une chaîne de caractères, la méthode find() est faite pour vous. Elle renvoie l’indice où se trouve la première occurrence.
replace(old, new[, count])
Cette méthode est particulièrement utile lorsque vous faites de l’édition de texte. Par exemple, vous parcourez un fichier ligne par ligne et vous voulez remplacer chaque occurrence de « toto » par « titi ».
ligne = "C'est l'histoire de toto"
ligne.replace("toto","titi")
>>> "C'est l'histoire de titi"
PythonLe dernier argument « count » permet de définir le nombre d’occurrences à remplacer. si par exemple, on trouve trois fois « toto » dans la ligne et que vous avez défini l’argument « count » à 2, le dernier « toto » ne sera pas remplacé.
join(iterable) / split(sep=None, maxsplit=- 1)
La méthode joint() permet de concaténer une liste de chaînes avec un séparateur défini. Si vous voulez écrire un fichier CSV, cette méthode peut grandement simplifier votre code. La méthode split() réalise l’opération inverse. Elle divise la chaîne en plusieurs sous chaînes. Par défaut, le séparateur est l’espace mais l’utilisateur peut définir un séparateur personnalisé.
ma_chaine = 'Je vous présente plusieurs méthodes pour manipuler les chaines'
liste = ["Python", "c'est", "formidable"]
sep = " "
sep.join(liste)
>>> "Python c'est formidable"
ma_chaine.split()
>>> ['Je', 'vous', 'présente', 'plusieurs', 'méthodes', 'pour', 'manipuler', 'les', 'chaines']
ma_chaine = 4*'abcABC' + 'abc'
ma_chaine
>>> 'abcABCabcABCabcABCabcABCabc'
ma_chaine.split("ABC")
>>> ['abc', 'abc', 'abc', 'abc', 'abc']
Pythonstrip([chars]), rstrip([chars]), lstrip([chars])
Parfois vous avez besoin de supprimer les espaces, les tabulations et les retours à la ligne dans les chaînes de caractères. Ces méthodes peuvent vous aider. La particularité de ces méthodes est qu’elles ne s’appliquent qu’au début et/ou à la fin de la chaîne de caractère.
texte = " Bonjour à tous "
texte.strip()
>>> 'Bonjour à tous'
texte.lstrip()
>>> 'Bonjour à tous '
texte.rstrip()
>>> ' Bonjour à tous'
PythonVous pouvez bien sûr utiliser l’argument « char » dans la fonction. Par défaut, si on ne met rien c’est l’espace qui est supprimé. Il faut savoir que l’argument « char » n’est pas une chaîne de caractères qui est recherché dans la variable. Ce sont toutes les combinaisons de caractères de l’argument qui seront recherchées et supprimées. Retenez que cette méthode est surtout utile pour les espaces.
'mississippi'.rstrip('ipz')
>>> 'mississ'
'Monty Python'.rstrip(' Python')
>>> 'M'
PythonEt pour finir sur les chaînes de caractères avec Python
J’ai essayé de vous présenter les fonctionnalités principales pour manipuler les chaînes de caractères. D’autres méthodes existent comme par exemple islower() et isupper() ou startswith() et endswith(). Je vous invite à aller regarder dans la documentation officielle pour plus d’informations. Mais avec ce que je vous ai présenté, vous devriez pouvoir faire beaucoup de choses.
Merci de m’avoir lu, n’hésitez pas à me laisser un commentaire !
A bientôt, Benjamin