Table des matières

Chaînes des caractères

Le type str

On crée une chaîne de caractères en utilisant " ou ' indifféremment.

>>> texte = "bonjour"
>>> autre_texte = 'au revoir'
>>> type(texte)
< class:str >

Itérable et indexable

Le type d'une chaîne est str. Nous avons déjà rencontré la syntaxe de la manipulation d'une chaîne, elle est identique à celle des p-uplets. Juste un exemple pour mémoire :

>>> texte = "bonjour"
>>> texte[2]
'n'
>>> texte[-1]
'r'
>>> for car in texte:
      print(car)
b
o
n
j
o
u
r
  • Pouvoir faire for … in … correspond au caractère itérable d'une séquence,
  • Pourvoir écrire texte[2] correspond au caractère indexable

Immuable

En Python les chaînes de caractères sont immuables. On on essaie de modifier le contenu d'un str, on aura donc une erreur :

>>> texte = "bonjour"
>>> texte[2] = 'a'
TypeError: 'str' object does not support item assignment

Toutes les fonctions qui modifient une chaîne créent une copie de la chaîne d'origine avec la modification faite.

Quelques fonctions spécifiques

Les fonctions pouvant être utilisées sur les chaînes de caractères sont très nombreuses et on ne va pas toutes les apprendre. Dites vous que pour toutes les manipulations ordinaires auxquelles vous pourriez penser, il existe probablement une fonction déjà faite.

>>> texte = "  Éléphant  "
>>> texte.upper()
'  ÉLÉPHANT  '
>>> texte.lower()
'  éléphant  '
>>> texte.lstrip()
'Éléphant  '
>>> "ananas".replace('a', 'x')
'xnxnxs'
>>> "452".isnumeric()
True

Vous noterez la syntaxe particulière : on veut agir sur la chaîne texte et au lieu d'écrire quelque chose comme upper(texte), on écrit texte.upper(). Ce serait trop long de l'expliquer ici. Le type str est une classe – au sens donné à ce mot en programmation – et vous l'étudierez si vous poursuivre en Terminale.

La commande help(str) affiche les nombreuses fonctions disponibles. Bien sûr, internet est aussi une source précieuse d'information.

Le formatage

Il est fréquent que l'on ait besoin d'écrire un résultat et que l'on souhaite respecter un certain affichage.

Exemple : On dispose du nombre a et on voudrait afficher un message disant “La valeur de a est ” suivi de la valeur de a.

Il existe diverses méthodes mais la meilleur consiste à utiliser un formatage.

Méthode 1, en utilisant print

On peut écrire print("La valeur de a est",a) ce qui fait ce que l'on demande. Mais cette méthode est très limitée : On ne pourra pas régler finement l'affichage – voire les cas suivants.

Méthode 2, avec une concaténation

Disons le tout de suite, c'est une mauvaise méthode. L'idée est de construire la chaîne de caractères en concaténant le début du message avec la valeur de a convertie en str.

"La valeur de a est " + str(a)

Méthode 3, format

Les chaînes de caractères disposent d'une méthode format permettant de contrôler finement l'affichage.

>>> a = 1/7
>>> "La valeur de a est {}".format(a)
'La valeur de a est 0.14285714285714285'
>>> "La valeur de a est {:0.4f}".format(a)
'La valeur de a est 0.1429'

Voici le principe :

Les options d'affichage sont très nombreuses. Par exemple un affichage direct en hexadécimal :

>>> n = 218
>>> "{} en hexadécimal s'écrit {:03X}".format(n,n)
'0DA'

:03X indique que l'on veut un affichage à 3 chiffres, complété à gauche par des 0 si besoin, en hexadécimal, en majuscules.

Méthode 4, à partir de Python 3.6

À partir de Python 3.6 on dispose des fstrings – formated strings.

Le principe est le même qu'avec format mais avec une notation plus légère et plus lisible.

>>> n = 218
>>> f"{n} en hexadécimal s'écrit {n:03X}"
'0DA'

Vous pouvez noter le f en tête de la chaîne et les variables qui sont placées directement dans les { }.