Les méthodes des chaines de caractères en Python
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Quelques méthodes
- 3.1- Les méthodes .lower() et .upper()
- 3.2- La méthode .split()
- 3.3- La méthode .find()
- 3.4- La méthode .replace()
- 3.5- La méthode .count()
- 3.6- La méthode .startswith()
- 3.7- La méthode .strip()
- 3.8- La méthode .join()
- 4- Application
- 4.1- Énoncé
- 4.2- Solution
- 4.2.1- Sommaire du cours Python
Les méthodes des chaines de caractères en Python
-
Objectifs
- Connaître les Méthodes associées aux chaînes de caractères
-
Présentation
- Sous Python, les chaînes de caractères sont des objets. On peut donc effectuer de nombreux traitements dessus en utilisant des méthodes appropriées. En voici quelques-unes, choisies parmi les plus utiles.
- Mais vous pouvez obtenir la liste complète de toutes les méthodes associées à un objet à l’aide de la fonction intégrée dir(str) ou help(str) :
-
Quelques méthodes
-
Les méthodes .lower() et .upper()
- Les méthodes
.lower()
et.upper()
renvoient un texte en minuscule et en majuscule respectivement. On remarque que l’utilisation de ces fonctions n’altère pas la chaîne de caractères de départ mais renvoie une chaîne de caractères transformée. - Pour mettre en majuscule la première lettre seulement, vous pouvez faire :
-
La méthode .split()
- La méthode .split() découpe une chaîne de caractères en plusieurs éléments appelés champs, en utilisant comme séparateur n’importe quelle combinaison « d’espace(s) blanc(s) ».
- Il est possible de modifier le séparateur de champs, par exemple :
- Attention, dans cet exemple, le séparateur est un seul caractères : (et non pas une combinaison de un ou plusieurs ":)" menant ainsi à une chaîne vide entre singe et souris.
- Il est également intéressant d’indiquer à
.split()
le nombre de fois qu’on souhaite découper la chaîne de caractères avec l’argumentmaxsplit()
: -
La méthode .find()
- La méthode
.find()
, quant à elle, recherche une chaîne de caractères passée en argument : - Si l’élément recherché est trouvé, alors l’indice du début de l’élément dans la chaîne de caractères est renvoyé. Si l’élément n’est pas trouvé, alors la valeur -1 est renvoyée.
- Si l’élément recherché est trouvé plusieurs fois, seul l’indice de la première occurrence est renvoyé :
-
La méthode .replace()
- On trouve aussi la méthode
.replace()
qui substitue une chaîne de caractères par une autre : -
La méthode .count()
- La méthode .
count()
compte le nombre d’occurrences d’une chaîne de caractères passée en argument : -
La méthode .startswith()
- La méthode
.startswith()
vérifie si une chaîne de caractères commence par une autre chaîne de caractères : - Cette méthode est particulièrement utile lorsqu’on lit un fichier et que l’on veut récupérer certaines lignes commençant par un mot-clé. Par exemple dans un fichier PDB, les lignes contenant les coordonnées des atomes commencent par le mot-clé ATOM.
-
La méthode .strip()
- La méthode
.strip()
permet de « nettoyer les bords » d’une chaîne de caractères : - La méthode
.strip()
enlève les espaces situés sur les bords de la chaîne de caractère mais pas ceux situés entre des caractères visibles. En réalité, cette méthode enlève n’importe quel combinaison « d’espace(s) blanc(s) » sur les bords, par exemple : - La méthode
.strip()
est très pratique quand on lit un fichier et qu’on veut se débarrasser des retours à la ligne. -
La méthode .join()
- La méthode
.join()
assemble les éléments d’une liste pour former une chaîne unique, chaque élément étant séparé par un point virgule. Le séparateur n’est pas forcément un point-virgule, il n’est même pas forcément un caractère unique. Il peut être n’importe quelle chaîne. - La conversion d’une liste de chaînes de caractères en une chaîne de caractères est un peu particulière puisqu’elle fait appelle à la méthode
.join()
. -
Application
-
Énoncé
- On considère la chaîne de caractères val :
val = "3.4 17.2 atom "
- On souhaite extraire les valeurs 3.4 et 17.2 pour ensuite les additionner.
-
Solution
- Dans un premier temps, on découpe la chaîne de caractères avec l’instruction
.split()
: - On obtient alors une liste de chaînes de caractères. On transforme ensuite les deux premiers éléments de cette liste en floats (avec la fonction float()) pour pouvoir les additionner :
[‘__add__
‘, ‘__class__
‘, ‘__contains__
‘, ‘__delattr__
‘, ‘__dir__
‘, ‘__doc__
‘, ‘__eq__
‘, ‘__format__
‘, ‘__ge__
‘, ‘__getattribute__
‘, ‘__getitem__
‘, ‘__getnewargs__
‘, ‘__gt__
‘, ‘__hash__
‘, ‘__init__
‘, ‘__init_subclass__
‘, ‘__iter__
‘, ‘__le__
‘, ‘__len__
‘, ‘__lt__
‘, ‘__mod__
‘, ‘__mul__
‘, ‘__ne__
‘, ‘__new__
‘, ‘__reduce__
‘, ‘__reduce_ex__
‘, ‘__repr__
‘, ‘__rmod__
‘, ‘__rmul__
‘, ‘__setattr__
‘, ‘__sizeof__
‘, ‘__str__
‘, ‘__subclasshook__
‘]
Il existe de nombreuses méthodes (sortes de fonctions préfixées par l’objet ici la chaîne) sur le traitement des chaînes.Les méthodes suivantes sont applicables sur des objets Python de type str
: capitalize()
, casefold()
, center()
, count()
, encode()
, endswith()
, expandtabs()
, find()
, format()
, format_map()
, index()
, isalnum()
, isalpha()
, isascii()
, isdecimal()
, isdigit()
, isidentifier()
, islower()
, isnumeric()
, isprintable()
, isspace()
, istitle()
, isupper()
, join()
, ljust()
, lower()
, lstrip()
, maketrans()
, partition()
, replace()
, rfind()
, rindex()
, rjust()
, rpartition()
, rsplit()
, rstrip()
, split()
, splitlines()
, startswith()
, strip()
, swapcase()
, title()
, translate()
, upper()
, zfill()
.
>>> x [0]. upper () + x [1:]
'Girafe '
ou encore plus simple avec la méthode adéquate :
>>> x. capitalize ()
'Girafe '
>>> animaux = " girafe tigre singe souris "
>>> animaux . split ()
['girafe ', 'tigre ', 'singe ', 'souris ']
>>> for animal in animaux . split ():
... print ( animal )
...
girafe
tigre
singe
souris
>>> animaux = " girafe : tigre : singe :: souris "
>>> animaux . split (":")
['girafe ', 'tigre ', 'singe ', '', 'souris ']
>>> animaux = " girafe tigre singe souris "
>>> animaux . split ( maxsplit =1)
['girafe ', 'tigre singe souris ']
>>> animaux . split ( maxsplit =2)
['girafe ', 'tigre ', 'singe souris ']
>>> animal = " girafe "
>>> animal . find ("i")
1
>>> animal . find (" afe ")
3
>>> animal . find ("z")
-1
>>> animal . find (" tig ")
-1
>>> animaux = " girafe tigre "
>>> animaux . find ("i")
>>> animaux = " girafe tigre "
>>> animaux . replace (" tigre ", " singe ")
'girafe singe '
>>> animaux . replace ("i", "o")
'gorafe togre '
>>> animaux = " girafe tigre "
>>> animaux . count ("i")
2
>>> animaux . count ("z")
0
>>> animaux . count (" tigre ")
>>> chaine = " Bonjour monsieur le capitaine !"
>>> chaine . startswith (" Bonjour ")
True
>>> chaine . startswith (" Au revoir ")
False
>>> chaine = " Comment enlever les espaces au dé but et à la fin ? "
>>> chaine . strip ()
'Comment enlever les espaces au dé but et à la fin ?'
>>> chaine = " \ tfonctionne avec les tabulations et les retours à la ligne \n"
>>> chaine . strip ()
'fonctionne avec les tabulations et les retours à la ligne '
>>> seq = ["A", "T", "G", "A", "T"]
>>> seq
['A', 'T', 'G', 'A', 'T ']
>>> " -". join ( seq )
'A-T-G-A-T'
>>> " ". join ( seq )
'A T G A T'
>>> "". join (seq )
'ATGAT '
Attention, la méthode
.join()
ne s’applique qu’à une liste de chaînes de caractères.
>>> maliste = ["A", 5, "G"]
>>> " ". join ( maliste )
Traceback ( most recent call last ):
File "<stdin >", line 1, in <module >
TypeError : sequence item 1: expected string , int found
>>> val2 = val . split ()
>>> val2
[ '3.4 ' , '17.2 ' , 'atom ']
>>> float ( val2 [0]) + float ( val2 [1])
20.599999999999998