Tester les espaces de chaines de caractères avec isspace() en Python

1. À propos de isspace() en Python

La méthode isspace() permet de vérifier si une chaîne de caractères contient uniquement des caractères d'espacement. Elle retourne une valeur booléenne : True si tous les caractères de la chaîne sont considérés comme des espaces par Python et False dans le cas contraire.

Il est important de comprendre que isspace() ne reconnaît pas uniquement le caractère espace classique. Elle reconnaît également plusieurs caractères d'espacement comme la tabulation et le saut de ligne.

Le programme suivant teste une chaîne contenant uniquement plusieurs espaces.

Sortie :

En revanche, dès que la chaîne contient un caractère qui n'est pas un caractère d'espacement, isspace() retourne False.

Sortie :

La syntaxe générale de la méthode est simplement chaine.isspace(). Elle ne nécessite aucun argument et ne modifie pas la chaîne d'origine.

2. Tester une chaîne avec isspace()

La méthode isspace() retourne True lorsque la chaîne contient au moins un caractère et que tous ses caractères sont des caractères d'espacement. Un seul espace suffit donc pour obtenir True.

Sortie :

Une chaîne contenant plusieurs espaces respecte également cette condition.

Sortie :

Si la chaîne contient des lettres en plus des espaces, elle n'est plus composée uniquement de caractères d'espacement.

Sortie :

Le même principe s'applique lorsqu'un chiffre est présent dans la chaîne.

Sortie :

Cas particulier de la chaîne vide

Une chaîne vide ne contient aucun caractère. Comme isspace() exige au moins un caractère d'espacement pour retourner True, elle retourne False pour une chaîne vide.

Sortie :

3. Comprendre les caractères reconnus par isspace()

La méthode isspace() reconnaît différents caractères d'espacement. Elle ne se limite donc pas au caractère obtenu en appuyant sur la barre d'espace du clavier.

Tester une tabulation

Le caractère spécial \t représente une tabulation. Une chaîne contenant uniquement une ou plusieurs tabulations est considérée comme une chaîne d'espacement.

Sortie :

Tester un saut de ligne

Le caractère spécial \n représente un saut de ligne. Il est également reconnu comme un caractère d'espacement par isspace().

Sortie :

Combiner plusieurs caractères d'espacement

Une chaîne peut contenir différents types de caractères d'espacement. Si tous ses caractères appartiennent à cette catégorie, isspace() retourne toujours True.

Sortie :

Pour visualiser précisément les caractères invisibles présents dans une chaîne, la fonction repr() est particulièrement utile. Elle permet notamment de voir les séquences \t et \n.

Sortie :

4. Utiliser isspace() dans une condition

La méthode isspace() peut être utilisée directement dans une instruction if. Cela permet notamment de détecter une saisie composée uniquement d'espaces.

Sortie :

Lorsque la chaîne contient du texte, la condition devient fausse et le bloc else est exécuté.

Sortie :

Détecter une saisie vide ou composée uniquement d'espaces

Une chaîne vide retourne False avec isspace(). Pour vérifier qu'une saisie est soit vide, soit composée uniquement de caractères d'espacement, il faut donc traiter les deux situations.

Sortie :

Une autre technique courante consiste à utiliser strip(). Cette méthode retire les caractères d'espacement situés aux extrémités de la chaîne. Si le résultat est une chaîne vide, aucune donnée significative n'a été saisie.

Sortie :

5. Exemples pratiques avec isspace()

Compter les caractères d'espacement

Comme isspace() peut être appliquée à une chaîne d'un seul caractère, elle permet de compter tous les caractères d'espacement présents dans un texte.

Sortie :

Afficher la position des espaces

La fonction enumerate() peut être combinée avec isspace() pour déterminer les indices des caractères d'espacement dans une chaîne.

Sortie :

Supprimer tous les caractères d'espacement

Une compréhension de chaîne avec join() permet d'utiliser isspace() pour éliminer les caractères d'espacement présents dans un texte.

Sortie :

Filtrer une liste de chaînes

La méthode isspace() peut également servir à éliminer les éléments d'une liste qui contiennent uniquement des caractères d'espacement. Pour éliminer également les chaînes vides, on ajoute le test texte != "".

Sortie :

Comparer isspace() avec d'autres méthodes

Les méthodes isspace(), isalpha(), isdigit() et isalnum() vérifient des catégories différentes de caractères. Le programme suivant permet de comparer leur comportement.

Sortie :

6. À retenir !

La méthode isspace() permet de savoir si une chaîne non vide est constituée uniquement de caractères d'espacement. Elle est particulièrement utile pour contrôler les saisies, analyser du texte et identifier différents types d'espaces.

  • isspace() ne prend aucun argument.
  • Elle retourne True si tous les caractères de la chaîne sont des caractères d'espacement.
  • La chaîne doit contenir au moins un caractère pour que isspace() puisse retourner True.
  • Une chaîne vide retourne donc False.
  • Un espace classique est reconnu par isspace().
  • Une tabulation \t est également reconnue.
  • Un saut de ligne \n est également reconnu.
  • Une chaîne mélangeant espaces, tabulations et sauts de ligne peut retourner True si elle ne contient aucun autre caractère.
  • La présence d'une lettre, d'un chiffre ou d'un autre caractère non considéré comme un espace entraîne le résultat False.
  • Pour détecter à la fois une chaîne vide et une chaîne composée uniquement d'espaces, on peut utiliser strip() ou combiner un test de chaîne vide avec isspace().

Le programme suivant résume le comportement de isspace() sur plusieurs chaînes différentes.

Sortie :

 




Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


loader-image
Le prix initial était : € 11,00.Le prix actuel est : € 10,00.
Le prix initial était : € 6,00.Le prix actuel est : € 5,00.



Leave a Reply

Your email address will not be published. Required fields are marked *