Les chaînes de caractères
Ce sont (presque) des listes de caractères…
On les note entre deux apostrophes ou bien entre deux guillemets :
'entre apostrophes pour pouvoir y inclure des "guillemets" ...'
"... entre guillemets pour y inclure des 'apostrophes' !"
Si le texte doit contenir des apostrophes et des guillemets , on peut procéder ainsi :
""" ce texte entre trois "guillemets" peut aussi être écrit sur plusieurs lignes ... et contenir des 'apostrophes' ...""" ' ... et c\'est en ajoutant des "antislash" ...' " que l'on peut \"contourner\" les conflits."
Accès aux caractères
On retrouve la possibilité de faire du « slicing » (comme avec des listes):
>>> "L'informatique, c'est Fantastique !"[1:12:2] "'nomtq" >>> "L'informatique, c'est Fantastique !"[::-1] "! euqitsatnaF tse'c ,euqitamrofni'L"
Mais on ne peut pas assigner un caractère à un emplacement donné :
>>> "L'informatique, c'est Fantastique !"[22] = 'P' Traceback (most recent call last): File "<pyshell#43>", line 1, in <module> "L'informatique, c'est Fantastique !"[22] = 'P' TypeError: 'str' object does not support item assignment
Il faut faire :
>>> l = [c for c in "L'informatique, c'est Fantastique !"] # conversion string → list >>> l[22] = 'P' # assignation >>> "".join(l) # conversion list → string "L'informatique, c'est Pantastique !"
Ou bien, sans utiliser la méthode .join() …
Exercice :
- Écrire une fonction assigne() qui remplace dans une chaine de caractères t , le caractère d’indice i par un autre caractère c .
par exemple, si t = « Hip Hip Hip … Hourra ! » alors assigne(t, 4, ‘Z’) renvoie « Hip Zip Hip … Hourra ! »
Et on dispose de plein de fonctions …
Concaténation
>>> "L'informatique," + "c'est" + "Fantastique !" "L'informatique,c'estFantastique !" >>> " ".join(["L'informatique,", "c'est", "Fantastique !"]) "L'informatique, c'est Fantastique !"
Remplacement de caractères
>>> "L'informatique, c'est Fantastique !".replace('i', 'e') "L'enformateque, c'est Fantasteque !"
Découpage
>>> "L'informatique, c'est Fantastique !".split() ["L'informatique,", "c'est", 'Fantastique', '!'] >>> "L'informatique, c'est Fantastique !".split('t') ["L'informa", "ique, c'es", ' Fan', 'as', 'ique !']
Exercice :
- En utilisant les fonctions chr() et ord() , et la table de caractère ASCII, inverser la casse des caractères de cette phrase :
J'aime l'Informatique et les Sciences du Numérique !
(sans utiliser de structure en if … !)
Autres exercices sur les chaînes de caractères