Parcours
/
Python
Python
/
Programme
/
Méthodes de chaînes de caractères
Mé

Méthodes de chaînes de caractères en Python

60 exercices

À propos de Méthodes de chaînes de caractères

Une str est une séquence immuable de points de code Unicode. Cela peut inclure des lettres, des signes diacritiques, des caractères de positionnement, des nombres, des symboles monétaires, des emoji, de la ponctuation, des espaces et des sauts de ligne, entre autres.

Les strings implémentent toutes les opérations de séquence communes et peuvent être parcourues avec la syntaxe for item in <str> ou for index, item in enumerate(<str>). Chaque point de code (strings de longueur 1) peut être référencé par son indice 0-based index en partant de la gauche, ou par son indice -1-based index en partant de la droite.

Les strings peuvent être concaténées avec <str> + <other str> ou <str>.join(<iterable>), et découpées via <str>.split(<separator>). Elles offrent aussi de nombreuses autres options de formatage et d'assemblage.

Pour aller plus loin avec les strings, Python fournit un ensemble riche de méthodes de string pour rechercher, nettoyer, transformer, traduire, et bien d'autres opérations encore.

Parmi les méthodes str les plus couramment utilisées, on trouve :

  • Vérifier les préfixes et suffixes avec <str>.startswith(<substr>) et <str>.endswith(<substr>)
  • Modifier la casse d'une string avec des méthodes comme <str>.title(), <str>.upper()/<str>.lower() et <str>.swapcase()
  • Supprimer les caractères de début ou de fin d'une string avec <str>.strip(<chars>), <str>.lstrip(<chars>) ou <str>.rstrip(<chars>)
  • Remplacer des sous-chaînes avec la méthode <str>.replace(<old>, <new>)

Une string étant immuable, la valeur d'un objet str en mémoire ne peut pas changer ; les méthodes qui semblent modifier une string renvoient une nouvelle copie ou instance de cet objet str.

<str>.endswith(<suffix>) renvoie True si la string se termine par <suffix>, et False sinon.

>>> 'My heart breaks. 💔'.endswith('💔')
True

>>> 'cheerfulness'.endswith('ness')
True

# Punctuation is part of the string, so needs to be included in any endswith match.
>>> 'Do you want to 💃?'.endswith('💃')
False

>>> 'The quick brown fox jumped over the lazy dog.'.endswith('dog')
False

<str>.title() analyse une string et met en majuscule le premier « caractère » de chaque « mot » trouvé. En Python, cela dépend beaucoup du codec de langue utilisé et de la façon dont la langue concernée représente les mots et les caractères. Il peut aussi y avoir des règles de locale propres à une langue ou à un jeu de caractères.

>>> man_in_hat_th = 'ผู้ชายใส่หมวก'
>>> man_in_hat_ru = 'мужчина в шляпе'
>>> man_in_hat_ko = '모자를 쓴 남자'
>>> man_in_hat_en = 'the man in the hat.'

>>> man_in_hat_th.title()
'ผู้ชายใส่หมวก'

>>> man_in_hat_ru.title()
'Мужчина В Шляпе'

>>> man_in_hat_ko.title()
'모자를 쓴 남자'

>> man_in_hat_en.title()
'The Man In The Hat.'

<str>.strip(<chars>) renvoie une copie de la str dans laquelle les <chars> de début et de fin ont été supprimés. Les points de code spécifiés dans <chars> ne sont pas un préfixe ou un suffixe : toutes les combinaisons de ces points de code seront supprimées, en partant des deux extrémités de la string. Si rien n'est spécifié pour <chars>, toutes les combinaisons de points de code d'espacement seront supprimées. Si l'on ne veut supprimer que du côté gauche ou du côté droit, on peut utiliser <str>.lstrip(<chars>) et <str>.rstrip(<chars>).

# This will remove "https://", because it can be formed from "/stph:". 
>>> 'https://unicode.org/emoji/'.strip('/stph:')
'unicode.org/emoji'

# Removal of all whitespace from both ends of the str.
>>> '   🐪🐪🐪🌟🐪🐪🐪   '.strip()
'🐪🐪🐪🌟🐪🐪🐪'

>>> justification = 'оправдание'
>>> justification.strip('еина')
'оправд'

# Prefix and suffix in one step.
>>> 'unaddressed'.strip('dnue')
'address'

>>> '  unaddressed  '.strip('dnue ')
'address'

<str>.replace(<substring>, <replacement substring>) renvoie une copie de la string dans laquelle toutes les occurrences de <substring> ont été remplacées par <replacement substring>.

La citation utilisée ci-dessous est tirée de The Hunting of the Snark de Lewis Carroll

# The Hunting of the Snark, by Lewis Carroll
>>> quote = '''
"Just the place for a Snark!" the Bellman cried,
   As he landed his crew with care;
Supporting each man on the top of the tide
   By a finger entwined in his hair.

"Just the place for a Snark! I have said it twice:
   That alone should encourage the crew.
Just the place for a Snark! I have said it thrice:
   What I tell you three times is true."
'''

>>> quote.replace('Snark', '🐲')
...
'\n"Just the place for a 🐲!" the Bellman cried,\n   As he landed his crew with care;\nSupporting each man on the top of the tide\n   By a finger entwined in his hair.\n\n"Just the place for a 🐲! I have said it twice:\n   That alone should encourage the crew.\nJust the place for a 🐲! I have said it thrice:\n   What I tell you three times is true."\n'

>>> 'bookkeeper'.replace('kk', 'k k')
'book keeper'

🌟Nouveau dans Python 3.9

Python 3.9 introduit deux nouvelles méthodes de string qui facilitent grandement la suppression des préfixes et des suffixes.

<str>.removeprefix(<substring>) renvoie la string sans le préfixe (string[len(<substring>):]). Si la <substring> n'est pas présente, une copie de la string d'origine est renvoyée.

# removing a prefix
>>> 'TestHook'.removeprefix('Test')
'Hook'
>>> 'bookkeeper'.removeprefix('book')
'keeper'

<str>.removesuffix(<substring>) renvoie la string sans le suffixe (string[:-len(substring)]). Si la <substring> n'est pas présente, une copie de la string d'origine est renvoyée.

# removing a suffix
>>> 'TestHook'.removesuffix('Hook')
'Test'
>>> 'bookkeeper'.removesuffix('keeper')
'book'

Pour plus d'exemples et de méthodes, le tutoriel informel est un bon point de départ. How to Unicode dans la documentation Python offre de nombreux détails sur Unicode, l'encodage, les octets et d'autres considérations techniques pour travailler avec des strings en Python.

Python prend également en charge les expressions régulières via le module re, qui sera abordé dans un futur concept.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Méthodes de chaînes de caractères

L'entraînement est verrouillé

Déverrouille 3 exercices de plus pour t'entraîner sur Méthodes de chaînes de caractères