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

 

Dépôt de fichier réponse

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *