Tester la fin d'une chaîne avec endswith() en Python

1. À propos de endswith() en Python

En Python, la méthode endswith() permet de vérifier si une chaîne de caractères se termine par un suffixe donné. Elle retourne une valeur booléenne : True lorsque la fin de la chaîne correspond au suffixe recherché et False dans le cas contraire.

Dans l'exemple suivant, le nom du fichier se termine bien par ".pdf". La méthode endswith() retourne donc True.

Sortie :

Si le suffixe recherché ne correspond pas à la fin de la chaîne, endswith() retourne False.

Sortie :

La méthode endswith() est sensible à la casse. Par conséquent, ".PDF" et ".pdf" sont considérés comme deux suffixes différents.

Sortie :

2. Tester la fin d'une chaîne avec endswith()

Le suffixe transmis à endswith() peut être constitué d'un seul caractère ou de plusieurs caractères. Toute la séquence doit correspondre exactement à la fin de la chaîne.

Dans l'exemple suivant, le programme vérifie si le mot "Python" se termine par la lettre "n".

Sortie :

Il est également possible de rechercher un suffixe contenant plusieurs caractères.

Sortie :

Les espaces placés à la fin d'une chaîne sont pris en compte. Une chaîne terminée par des espaces ne se termine donc pas directement par le mot qui les précède.

Sortie :

Lorsque les espaces situés à droite ne sont pas significatifs, la méthode rstrip() peut être utilisée avant endswith().

Sortie :

3. Tester plusieurs suffixes avec endswith()

La méthode endswith() peut recevoir un tuple de suffixes. Elle retourne True si la chaîne se termine par au moins l'un des suffixes contenus dans ce tuple.

Dans l'exemple suivant, le programme vérifie si un fichier possède l'une des extensions d'image indiquées.

Sortie :

Si aucun des suffixes proposés ne correspond à la fin de la chaîne, endswith() retourne False.

Sortie :

L'utilisation d'un tuple permet d'éviter plusieurs appels successifs à endswith() reliés par l'opérateur or.

Sortie :

Le test reste sensible à la casse, y compris lorsqu'un tuple de suffixes est utilisé. On peut normaliser la chaîne avec lower() ou casefold() lorsque la casse doit être ignorée.

Sortie :

4. Limiter le test avec les paramètres start et end

La méthode endswith() accepte deux paramètres optionnels : start et end. Ils permettent de vérifier la fin d'une portion déterminée de la chaîne plutôt que la fin de la chaîne complète.

Dans l'exemple suivant, le test est effectué sur la portion de la chaîne commençant à l'indice 7. Cette portion correspond à "Python".

Sortie :

Le paramètre end permet de fixer la limite de fin de la portion à tester. Comme avec le slicing, l'indice end est exclu. Dans la chaîne suivante, la portion comprise entre les indices 0 et 5 inclus correspond à "Python".

Sortie :

Le premier test est vrai car la portion texte[0:6] est "Python" et se termine donc par "Python". Le second est faux car cette même portion ne se termine pas par "Pytho".

Les paramètres start et end permettent ainsi de réaliser le test sur une sous-chaîne sans avoir besoin de créer explicitement cette sous-chaîne avec le slicing.

Sortie :

En effet, texte[0:11] correspond à "Python-Java". Cette portion se termine par "Java".

5. Exemples pratiques avec endswith()

Vérifier l'extension d'un fichier

L'une des utilisations les plus courantes de endswith() consiste à vérifier rapidement si un nom de fichier se termine par une extension donnée.

Sortie :

Filtrer plusieurs types de fichiers

Un tuple de suffixes permet de filtrer facilement une liste de fichiers. Dans l'exemple suivant, seuls les fichiers dont le nom se termine par une extension d'image sont affichés.

Sortie :

Tester la ponctuation à la fin d'une phrase

endswith() peut également servir à vérifier si une phrase se termine par un signe de ponctuation déterminé.

Sortie :

Accepter plusieurs signes de ponctuation

Un tuple peut être utilisé pour vérifier si une phrase se termine par l'un de plusieurs signes de ponctuation.

Sortie :

Vérifier la fin d'une adresse Web

La méthode endswith() peut être utilisée pour effectuer un contrôle simple sur la fin d'une adresse représentée sous forme de chaîne.

Sortie :

Comparer endswith() avec le slicing

Il est possible d'effectuer un test similaire avec le slicing, mais endswith() exprime directement l'intention de vérifier un suffixe et évite de calculer manuellement sa longueur.

Sortie :

6. À retenir !

La méthode endswith() permet de vérifier efficacement si une chaîne de caractères se termine par un suffixe donné. Elle retourne un booléen et peut donc être utilisée directement dans les conditions.

  • endswith() retourne True si la chaîne se termine par le suffixe recherché.
  • Elle retourne False lorsque le suffixe ne correspond pas à la fin de la chaîne.
  • La comparaison effectuée par endswith() est sensible à la casse.
  • Le suffixe peut contenir un ou plusieurs caractères.
  • Un tuple permet de tester plusieurs suffixes en un seul appel.
  • Les paramètres optionnels start et end permettent de limiter le test à une portion de la chaîne.
  • Les espaces placés à la fin de la chaîne sont pris en compte.
  • rstrip() peut être utilisée avant endswith() lorsque les espaces finaux doivent être ignorés.
  • casefold() ou lower() peut être utilisée lorsque le test doit ignorer la casse.
  • endswith() est particulièrement pratique pour filtrer des noms de fichiers selon leur extension.

Le programme suivant résume plusieurs utilisations courantes de endswith().

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 *