Comment trancher et couper les chaînes de caractères

2022-10-01 23:19:12  samedi  9812 mots  

Accéder à des plages de caractères offre un certain degré de souplesse, mais cela ne vous permet pas en soi de manipuler le contenu des chaînes de caractères, ni de découvrir quoi que ce soit sur elles. Vous pourriez par exemple avoir besoin de convertir les lettres en majuscules, ou bien encore de savoir si une phrase contient toutes les lettres de l’alphabet.

Python offre de nombreuses fonctions pour manipuler les chaînes de caractères. Voici les plus courantes :

  • capitalize() : Met la première lettre d’une chaîne en majuscule.
  • center(largeur, remplissage= » « ) : Centre une chaîne de manière à ce qu’elle remplisse l’espace spécifié par largeur. Si vous fournissez un caractère pour remplissage, la fonction l’utilisera. Sinon, elle se sert par défaut du caractère d’espacement pour obtenir la largeur voulue.
  • expandtabs (tailletab=8) : Modifie les tabulations d’une chaîne en remplaçant l’espacement par défaut (8) par la valeur spécifiée dans tailletab.
  • isalnum() : Retourne True si la chaîne a au moins un caractère et que tous les caractères sont alphanumériques (lettres ou chiffres).
  • isalpha() : Retourne True si la chaîne a au moins un caractère et que tous les caractères sont alphabétiques (lettres uniquement).
  • isdecimal() : Retourne True si une chaîne Unicode contient uniquement des caractères décimaux.
  • isdigit() : Retourne True si une chaîne contient uniquement des chiffres (pas de lettres).
  • islower() : Retourne True si une chaîne contient au moins un caractère alphabétique, et si toutes les lettres sont en minuscules.
  • isnumeric() : Retourne True si une chaîne Unicode contient uniquement des caractères numériques.
  • isspace() : Retourne True si une chaîne contient uniquement des caractères blancs (espaces, tabulations, retours chariot, saut de ligne ou de page et tabulations verticales, sauf des retours arrière).
  • istitle() : Retourne True si la première lettre de chaque mot est une majuscule. Attention : une lettre unique est comptée comme un mot.
  • isupper() : Retourne True si une chaîne contient au moins un caractère alphabétique, et si toutes les lettres sont en majuscules.
  • join(seq) : Crée une chaîne dans laquelle les caractères de la chaîne de base sont séparés par le contenu de seq d’une manière répétitive. Par exemple, si MaChaine contient « Hello », alors print(MaChaine. join(«  ! * ! »)) retournera !Hello *Hello !.
  • len(chaine) : Renvoie la longueur de la chaîne.
  • ljust(largeur, remplissage= » « ) : Justifie à gauche une chaîne de manière à ce qu’elle tienne dans l’espace défini par largeur. Si vous ne fournissez pas un caractère de remplissage, la fonction utilisera des espaces pour créer une chaîne de la largeur désirée.
  • lower() : Convertit toutes les lettres d’une chaîne en minuscules.
  • lstrip() : Supprimer tous les espaces blancs au début d’une chaîne.
  • max(chaine) : Retourne le caractère de la chaîne dont la valeur numérique est la plus élevée. Par exemple, a a un rang numérique supérieur à A.
  • min(chaine) : Retourne le caractère de la chaîne dont la valeur numérique est la moins élevée. Par exemple, A a un rang numérique inférieur à a.
  • rjust (largeur, remplissage= » « ) : Justifie à droite une chaîne de manière à ce qu’elle tienne dans l’espace défini par largeur. Si vous ne fournissez pas un caractère de remplissage, la fonction utilisera des espaces pour créer une chaîne de la largeur désirée.
  • rstrip() : Supprimer tous les espaces blancs à la fin d’une chaîne.
  • split (chaine= » « , num=string.count(chaine)) : Partage une chaîne en sous-chaîne en utilisant le délimiteur spécifié par chaine, ou par un espace si cet argument n’est pas spécifié. Par exemple, si votre chaîne d’origine contient Un Jour Sans Fin, le résultat par défaut sera Un, Jour, Sans et Fin. La valeur num permet de spécifier le nombre de sous-chaînes à renvoyer (toutes par défaut).
  • splitlines(num=string.count(’\n’)) : Partage une chaîne contenant des changements de ligne (\n) en autant de chaînes individuelles. Vous pouvez spécifier avec num le nombre de chaînes à retourner.
  • strip() : Supprime tous les espaces en début et en fin de chaîne.
  • swapcase() : Inverse la casse de chaque caractère alphabétique de la chaîne.
  • title() : Retourne une chaîne dans laquelle la première lettre de chaque mot est en majuscule, le reste étant en minuscules.
  • upper() : Convertit toutes les lettres d’une chaîne en minuscules.
  • zfill(largeur) : Renvoie une chaîne complétée à gauche par des zéros de manière à ce que la chaîne résultat ait la largeur indiquée. Cette fonction est conçue pour formater des chaînes contenant des valeurs numériques. Le signe original est conservé s’il est présent.

Jouer un peu avec ces fonctions peut vous aider à mieux les comprendre. C’est ce que proposent les étapes qui suivent. Vous pouvez également les retrouver dans le fichier téléchargeable Functions.py.

  1. Ouvrez une fenêtre de fichier Python.
    Vous pouvez par exemple lancer Python en mode Shell, puis choisir dans le menu File la commande New File.
  2. Tapez le code suivant en appuyant sur Entrée à la fin de chaque ligne :
    MyString = "  Bonjour la Terre  "
    
    print(MyString.upper())
    
    print(MyString.strip())
    print(MyString.center(21, "*"))
    print(MyString.strip().center(21, "*"))
    
    print(MyString.isdigit())
    print(MyString.istitle())
    
    print(max(MyString))
    
    print(MyString.split())
    print(MyString.split()[0])
    Ce code commence par créer une chaîne appelée MyString. Remarquez qu’elle contient des (deux) espaces au début et à la fin. La tâche initiale consiste à convertir tous les caractères en majuscules.
    Supprimer les espaces en trop est une tâche courante dans les applications. C’est le rôle de la fonction strip(). La fonction center() vous permet à l’inverse compléter une chaîne de manière à ce qu’elle remplisse une certaine largeur. Si vous combinez les deux, le résultat est différent de ce que fournit la fonction center() seule.
    Vous pouvez combiner plusieurs fonctions pour obtenir le résultat voulu. Python exécute chaque fonction l’une après l’autre, en allant de la gauche vers la droite. L’ordre dans lequel ces fonctions apparaissent affecte donc la sortie. Il faut par conséquent bien veiller à ne pas se tromper de sens. Si le résultat que vous obtenez est différent de ce que vous vouliez obtenir, essayez en premier lieu de changer l’ordre des fonctions.
    Certaines fonctions travaillent sur une chaîne passée en argument, plutôt que sur une instance de la chaîne. C’est par exemple le cas de la fonction max(). Si vous tapez MyString.max(), Python renverra une erreur. La liste développée au début de cette section spécifie les cas concernés.
    Lorsque vous travaillez avec des fonctions qui renvoient une liste, vous pouvez accéder à chaque membre individuel de celle-ci en spécifiant un indice. Par exemple, la fonction split() partage une chaîne en sous-chaînes. La dernière instruction de l’exemple permet de récupérer la première d’entre elles (celle qui a le rang 0). Nous reviendrons sur les listes dans le Chapitre 12.
  3. Choisissez la commande Run Module dans le menu Run.
    Une fenêtre Python en mode Shell va s’ouvrir. L’application affiche une série de chaînes modifiées (voir la Figure).

    Figure : Python offre de nombreuses fonctions pour manipuler les chaînes de caractères.

Commentaire