Manipulation des Chaînes de Caractères

Caractères d’échappement

Un caractère d’échappement est créé en tapant une barre oblique inverse \ suivie du caractère que vous souhaitez insérer.

Caractère d’échappementAffiche comme
\'Guillemet simple
\"Guillemet double
\tTabulation
\nNouvelle ligne (saut de ligne)
\\Barre oblique inverse
\bRetour arrière
\oooValeur octale
\rRetour chariot
# Caractères d'échappement : utiliser la barre oblique inverse pour insérer des caractères spéciaux
# \n = nouvelle ligne, \' = guillemet simple
print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.

Chaînes brutes (Raw strings)

Une chaîne brute ignore entièrement tous les caractères d’échappement et affiche toute barre oblique inverse qui apparaît dans la chaîne.

# Chaîne brute (préfixe r) : traite les barres obliques inverses comme des caractères littéraux
print(r"Hello there!\nHow are you?\nI\'m doing fine.")  # \n affiché littéralement
Hello there!\nHow are you?\nI\'m doing fine.

Les chaînes brutes sont principalement utilisées pour la définition des expressions régulières.

Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que fait une chaîne brute (précédée de r) en Python ?
A. Convertit tous les caractères en majuscules
B. Traite les barres obliques inverses comme des caractères littéraux, ignorant les séquences d'échappement
C. Supprime tous les espaces
D. Inverse la chaîne

Chaînes multilignes

print(
"""Dear Alice,

Eve's cat has been arrested for catnapping,
cat burglary, and extortion.

Sincerely,
Bob"""
)
Dear Alice,

Eve's cat has been arrested for catnapping,
cat burglary, and extortion.

Sincerely,
Bob

Indexation et découpage (Slicing) des chaînes

H   e   l   l   o       w   o   r   l   d    !
0   1   2   3   4   5   6   7   8   9   10   11

Indexation

# Indexation de chaîne : accéder aux caractères par position (base 0)
spam = 'Hello world!'

spam[0]  # Retourne le premier caractère : 'H'
'H'
spam[4]
'o'
spam[-1]
'!'

Découpage (Slicing)

# Découpage de chaîne : extraire une sous-chaîne en utilisant la syntaxe [début:fin]
spam = 'Hello world!'

spam[0:5]  # Retourne les caractères de l'index 0 à 4 : 'Hello'
'Hello'
spam[:5]
'Hello'
spam[6:]
'world!'
spam[6:-1]
'world'
spam[:-1]
'Hello world'
spam[::-1]
'!dlrow olleH'
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que fait spam[::-1] sur une chaîne ?
A. Retourne le premier caractère
B. Retourne le dernier caractère
C. Inverse la chaîne
D. Supprime tous les caractères
fizz = spam[0:5]
fizz
'Hello'

Les opérateurs in et not in

'Hello' in 'Hello World'
True
'Hello' in 'Hello'
True
'HELLO' in 'Hello World'
False
'' in 'spam'
True
'cats' not in 'cats and dogs'
False

upper(), lower() et title()

Transforme une chaîne en majuscules, minuscules et en casse de titre :

greet = 'Hello world!'
greet.upper()
'HELLO WORLD!'
greet.lower()
'hello world!'
greet.title()
'Hello World!'

Méthodes isupper() et islower()

Retourne True ou False après avoir évalué si une chaîne est en majuscules ou en minuscules :

spam = 'Hello world!'
spam.islower()
False
spam.isupper()
False
'HELLO'.isupper()
True
'abc12345'.islower()
True
'12345'.islower()
False
'12345'.isupper()
False

Les méthodes isX des chaînes

MéthodeDescription
isalpha()retourne True si la chaîne ne contient que des lettres.
isalnum()retourne True si la chaîne ne contient que des lettres et des chiffres.
isdecimal()retourne True si la chaîne ne contient que des nombres.
isspace()retourne True si la chaîne ne contient que des espaces, des tabulations et des sauts de ligne.
istitle()retourne True si la chaîne ne contient que des mots commençant par une majuscule suivie uniquement de caractères minuscules.

startswith() et endswith()

'Hello world!'.startswith('Hello')
True
'Hello world!'.endswith('world!')
True
'abc123'.startswith('abcdef')
False
'abc123'.endswith('12')
False
'Hello world!'.startswith('Hello world!')
True
'Hello world!'.endswith('Hello world!')
True
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que retourne startswith() ?
A. True si la chaîne commence par la sous-chaîne spécifiée, False sinon
B. La sous-chaîne qui correspond au début
C. L'index où la sous-chaîne commence
D. Une nouvelle chaîne sans le préfixe

join() et split()

join()

La méthode join() prend tous les éléments d’un itérable, comme une liste, un dictionnaire, un tuple ou un ensemble, et les joint en une seule chaîne. Vous pouvez également spécifier un séparateur.

''.join(['My', 'name', 'is', 'Simon'])
'MynameisSimon'
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'

split()

La méthode split() divise une chaîne en une liste. Par défaut, elle utilise les espaces pour séparer les éléments, mais vous pouvez également définir un autre caractère de votre choix :

'My name is Simon'.split()
['My', 'name', 'is', 'Simon']
'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
'My name is Simon'.split('m')
['My na', 'e is Si', 'on']
' My  name is  Simon'.split()
['My', 'name', 'is', 'Simon']
' My  name is  Simon'.split(' ')
['', 'My', '', 'name', 'is', '', 'Simon']
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que retourne split() lorsqu'il est appelé sur une chaîne ?
A. Une chaîne
B. Une liste de chaînes
C. Un tuple de chaînes
D. Un dictionnaire

Justification du texte avec rjust(), ljust() et center()

'Hello'.rjust(10)
'     Hello'
'Hello'.rjust(20)
'               Hello'
'Hello World'.rjust(20)
'         Hello World'
'Hello'.ljust(10)
'Hello     '
'Hello'.center(20)
'       Hello       '

Un deuxième argument optionnel pour rjust() et ljust() spécifiera un caractère de remplissage autre que l’espace :

'Hello'.rjust(20, '*')
'***************Hello'
'Hello'.ljust(20, '-')
'Hello---------------'
'Hello'.center(20, '=')
'=======Hello========'

Suppression des espaces avec strip(), rstrip(), et lstrip()

spam = '    Hello World     '
spam.strip()
'Hello World'
spam.lstrip()
'Hello World     '
spam.rstrip()
'    Hello World'
spam = 'SpamSpamBaconSpamEggsSpamSpam'
spam.strip('ampS')
'BaconSpamEggs'

La méthode Count

Compte le nombre d’occurrences d’un caractère ou d’une sous-chaîne donnée dans la chaîne sur laquelle elle est appliquée. Peut recevoir optionnellement un index de début et de fin.

sentence = 'one sheep two sheep three sheep four'
sentence.count('sheep')
3
sentence.count('e')
9
# retourne le compte de 'e' après 'one sh' i.e 6 caractères depuis le début de la chaîne
sentence.count('e', 6)
8
sentence.count('e', 7)
7

Méthode Replace

Remplace toutes les occurrences d’une sous-chaîne donnée par une autre sous-chaîne. Peut recevoir optionnellement un troisième argument pour limiter le nombre de remplacements. Retourne une nouvelle chaîne.

text = "Hello, world!"
text.replace("world", "planet")
'Hello, planet!'
fruits = "apple, banana, cherry, apple"
fruits.replace("apple", "orange", 1)
'orange, banana, cherry, apple'
sentence = "I like apples, Apples are my favorite fruit"
sentence.replace("apples", "oranges")
'I like oranges, Apples are my favorite fruit'
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que retourne la méthode replace() ?
A. Modifie la chaîne d'origine
B. Retourne None
C. Retourne une nouvelle chaîne avec les remplacements effectués
D. Retourne une liste des chaînes remplacées

Liens pertinents