1. À propos de startswith() en Python
En Python, la méthode startswith() permet de vérifier si une chaîne de caractères commence par un préfixe donné. Elle retourne une valeur booléenne : True si le préfixe est trouvé au début de la chaîne et False dans le cas contraire.
Dans l'exemple suivant, la chaîne commence bien par "Python". La méthode startswith() retourne donc True.
1 2 3 | texte = "Python est facile" resultat = texte.startswith("Python") print(resultat) |
Sortie :
1 | True |
Si le texte recherché ne correspond pas au début de la chaîne, startswith() retourne False.
1 2 3 | texte = "Python est facile" resultat = texte.startswith("Java") print(resultat) |
Sortie :
1 | False |
La méthode startswith() est sensible à la casse. Les chaînes "Python" et "python" ne sont donc pas considérées comme identiques.
1 2 3 | texte = "Python est facile" print(texte.startswith("Python")) print(texte.startswith("python")) |
Sortie :
1 2 | True False |
2. Tester le début d'une chaîne avec startswith()
La méthode startswith() peut vérifier un préfixe constitué d'un seul caractère ou de plusieurs caractères.
Dans l'exemple suivant, le programme vérifie si le mot commence par la lettre "P".
1 2 | mot = "Python" print(mot.startswith("P")) |
Sortie :
1 | True |
Un préfixe peut également contenir plusieurs caractères. Toute la séquence doit correspondre au début de la chaîne.
1 2 3 | texte = "Programmation Python" print(texte.startswith("Program")) print(texte.startswith("Python")) |
Sortie :
1 2 | True False |
Les espaces font partie de la chaîne. Un espace situé avant le texte peut donc modifier le résultat du test.
1 2 3 | texte = " Python" print(texte.startswith("Python")) print(texte.startswith(" Python")) |
Sortie :
1 2 | False True |
Si les espaces placés au début ne sont pas significatifs, on peut utiliser lstrip() avant startswith().
1 2 3 | texte = " Python est facile" resultat = texte.lstrip().startswith("Python") print(resultat) |
Sortie :
1 | True |
3. Tester plusieurs préfixes avec startswith()
La méthode startswith() accepte également un tuple de préfixes. Elle retourne True si la chaîne commence par au moins l'un des préfixes contenus dans le tuple.
Dans l'exemple suivant, le programme vérifie si le nom du fichier commence par "cours_", "exercice_" ou "solution_".
1 2 3 | fichier = "cours_python.pdf" resultat = fichier.startswith(("cours_", "exercice_", "solution_")) print(resultat) |
Sortie :
1 | True |
Si aucun des préfixes du tuple ne correspond au début de la chaîne, la méthode retourne False.
1 2 3 | fichier = "image_python.png" resultat = fichier.startswith(("cours_", "exercice_", "solution_")) print(resultat) |
Sortie :
1 | False |
Cette possibilité évite d'écrire plusieurs appels à startswith() reliés par l'opérateur or.
1 2 3 | adresse = "https://www.tresfacile.net" resultat = adresse.startswith(("http://", "https://")) print(resultat) |
Sortie :
1 | True |
4. Limiter le test avec les paramètres start et end
La méthode startswith() accepte deux paramètres optionnels supplémentaires : start et end. Ils permettent de limiter le test à une portion de la chaîne.
Le paramètre start indique l'indice à partir duquel commence la zone à tester. Dans l'exemple suivant, "Python" commence à l'indice 7.
1 2 3 | texte = "Cours : Python" resultat = texte.startswith("Python", 8) print(resultat) |
Sortie :
1 | True |
Dans cette chaîne, les indices 0 à 7 correspondent à "Cours : " et la lettre P de "Python" se trouve donc à l'indice 8.
Le paramètre end permet de fixer la limite de la zone dans laquelle le préfixe doit tenir. Comme avec le slicing, cette limite de fin est exclue.
1 2 3 | texte = "Cours : Python facile" print(texte.startswith("Python", 8, 14)) print(texte.startswith("Python", 8, 13)) |
Sortie :
1 2 | True False |
Dans le premier test, la portion considérée contient entièrement "Python". Dans le second, la limite end est trop petite pour contenir le préfixe complet.
5. Utiliser startswith() dans une condition
Comme startswith() retourne True ou False, elle peut être utilisée directement dans une instruction if pour exécuter du code selon le début d'une chaîne.
Dans l'exemple suivant, le programme détecte une adresse Web utilisant HTTPS.
1 2 3 4 5 | adresse = "https://www.tresfacile.net" if adresse.startswith("https://"): print("Connexion HTTPS") else: print("Autre type d'adresse") |
Sortie :
1 | Connexion HTTPS |
On peut également utiliser un tuple afin d'accepter plusieurs débuts possibles dans une seule condition.
1 2 3 4 5 | adresse = "http://example.com" if adresse.startswith(("http://", "https://")): print("Adresse Web reconnue") else: print("Adresse non reconnue") |
Sortie :
1 | Adresse Web reconnue |
Pour effectuer un test simple sans tenir compte de la casse, il est possible de normaliser la chaîne et le préfixe avec casefold().
1 2 3 | texte = "PYTHON est facile" resultat = texte.casefold().startswith("python".casefold()) print(resultat) |
Sortie :
1 | True |
6. Exemples pratiques avec startswith()
Filtrer des noms de fichiers
startswith() peut servir à sélectionner uniquement les noms de fichiers qui commencent par un préfixe particulier.
1 2 3 4 | fichiers = ["cours_python.pdf", "image.png", "cours_java.pdf", "notes.txt"] for fichier in fichiers: if fichier.startswith("cours_"): print(fichier) |
Sortie :
1 2 | cours_python.pdf cours_java.pdf |
Détecter une ligne de commentaire
Après avoir supprimé les espaces situés au début avec lstrip(), startswith() peut vérifier si une ligne commence par le caractère # utilisé pour les commentaires Python.
1 2 3 | ligne = " # Ceci est un commentaire" if ligne.lstrip().startswith("#"): print("Ligne de commentaire") |
Sortie :
1 | Ligne de commentaire |
Vérifier le début d'un identifiant
startswith() peut être utilisée pour vérifier qu'une chaîne respecte une convention simple de préfixe.
1 2 3 4 5 | identifiant = "USR_2026_125" if identifiant.startswith("USR_"): print("Identifiant utilisateur reconnu") else: print("Préfixe incorrect") |
Sortie :
1 | Identifiant utilisateur reconnu |
Filtrer plusieurs préfixes
Un tuple permet de sélectionner les éléments qui commencent par l'un de plusieurs préfixes autorisés.
1 2 3 4 5 | fichiers = ["cours_python.pdf", "exercice_01.py", "image.jpg", "solution_01.py"] prefixes = ("cours_", "exercice_", "solution_") for fichier in fichiers: if fichier.startswith(prefixes): print(fichier) |
Sortie :
1 2 3 | cours_python.pdf exercice_01.py solution_01.py |
Comparer startswith() avec une tranche de chaîne
Il est possible de vérifier un préfixe avec le slicing, mais startswith() exprime directement l'intention du programme et évite de calculer manuellement la longueur du préfixe.
1 2 3 4 | texte = "Python est facile" prefixe = "Python" print(texte[:len(prefixe)] == prefixe) print(texte.startswith(prefixe)) |
Sortie :
1 2 | True True |
7. À retenir !
La méthode startswith() permet de vérifier simplement si une chaîne commence par un préfixe donné. Elle retourne un booléen et peut donc être utilisée directement dans une condition.
- startswith() retourne True lorsque la chaîne commence par le préfixe recherché.
- Elle retourne False lorsque le préfixe ne correspond pas au début de la chaîne.
- La comparaison est sensible à la casse.
- Le préfixe peut contenir un ou plusieurs caractères.
- Un tuple permet de tester plusieurs préfixes en un seul appel.
- Les paramètres optionnels start et end permettent de limiter la zone de la chaîne à tester.
- Les espaces placés au début de la chaîne sont pris en compte.
- startswith() peut être combinée avec lstrip() lorsque les espaces initiaux doivent être ignorés.
- Pour un test sans distinction de casse, on peut normaliser les chaînes avec casefold().
- startswith() est particulièrement pratique pour filtrer des chaînes selon leur préfixe.
Le programme suivant résume plusieurs utilisations courantes de startswith().
1 2 3 4 5 | texte = "Python est facile" print(texte.startswith("Python")) print(texte.startswith("Java")) print(texte.startswith(("Java", "Python"))) print(texte.startswith("Python", 0, 6)) |
Sortie :
1 2 3 4 | True False True True |
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/



