3.3. Chaînes de caractère¶
Une chaîne de caractères n’est autre qu’une liste de caractères. Les caractères sont juxtaposés et encadrés par des guillemets simples '...'
ou doubles "..."
[1].
In [1]: type('abcdef')
Out[1]: str
In [2]: "abcdef" == 'abcdef'
Out[2]: True
A nouveau, les opérateurs +
et +=
fonctionnent comme pour les listes.
In [3]: 'abc' + "def"
Out[3]: 'abcdef'
In [4]: s = 'abc'
In [5]: s += "def"
On peut accéder de la même manière aux caractères d’une chaîne qu’aux éléments d’une liste.
In [6]: ma_chaine = "Bonjour Python"
In [7]: ma_chaine[3]
Out[7]: 'j'
In [8]: ma_chaine[2:]
Out[8]: 'njour Python'
In [9]: ma_chaine[:5]
Out[9]: 'Bonjo'
In [10]: ma_chaine[-3]
Out[10]: 'h'
In [11]: ma_chaine[2:9:2]
Out[11]: 'norP'
In [12]: ma_chaine[8:1:-3]
Out[12]: 'Pun'
Par contre, on ne peut pas modifier une chaîne.
In [13]: s = 'abc'
In [14]: s[0] = 'z'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[14], line 1
----> 1 s[0] = 'z'
TypeError: 'str' object does not support item assignment
Encore une fois, la fonction len
renvoie la longueur d’une chaîne de caractères.
In [15]: len('Anticonstitutionnellement')
Out[15]: 25
Les chaînes possèdent de nombreuses méthodes : ces méthodes ne modifient jamais la chaîne de caractère mais renvoient une autre chaîne de caractère.
In [16]: ma_chaine = 'Mon nom est Bond. James Bond.'
In [17]: ma_chaine.replace('Bond', 'Toto')
Out[17]: 'Mon nom est Toto. James Toto.'
In [18]: ma_chaine
Out[18]: 'Mon nom est Bond. James Bond.'
In [19]: ma_chaine.upper()
Out[19]: 'MON NOM EST BOND. JAMES BOND.'
In [20]: ma_chaine
Out[20]: 'Mon nom est Bond. James Bond.'