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’échappement | Affiche comme |
|---|---|
\' | Guillemet simple |
\" | Guillemet double |
\t | Tabulation |
\n | Nouvelle ligne (saut de ligne) |
\\ | Barre oblique inverse |
\b | Retour arrière |
\ooo | Valeur octale |
\r | Retour 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.
Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage
r) en Python ?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'
Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage
spam[::-1] sur une chaîne ?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éthode | Description |
|---|---|
| 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
Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage
startswith() ?True si la chaîne commence par la sous-chaîne spécifiée, False sinonjoin() 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']
Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage
split() lorsqu'il est appelé sur une chaîne ?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'
Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage
replace() ?None