Maîtriser la méthode String.find() de Python : Syntaxe, Exemples et Alternatives
Qu'est-ce que Python String.find() ?
La méthode String.find() en Python retourne l'index de la première occurrence d'une sous-chaîne spécifiée dans une chaîne. Si la sous-chaîne n'est pas trouvée, elle retourne gracieusement -1 au lieu de lever une exception, ce qui en fait un choix pratique pour les recherches de sous-chaînes.
Dans ce guide, vous apprendrez à utiliser find() efficacement, explorer ses paramètres, le comparer avec des méthodes connexes, et même compter combien de fois une sous-chaîne apparaît.
- Comprendre String.find()
- Syntaxe et paramètres
- Utilisation avec arguments par défaut
- Spécifier un index de début
- Définir une plage début et fin
- Trouver positions de sous-chaînes
- Comparer avec rfind()
- Comparer avec index()
- Compter les occurrences de sous-chaînes
Syntaxe de Python string find()
La signature de la méthode est simple :
chaîne.find(sous_chaîne, début, fin)
Paramètres
- sous_chaîne – Le texte que vous recherchez.
- début (optionnel) – Index où la recherche commence ; par défaut
0. - fin (optionnel) – Index où la recherche se termine ; par défaut la longueur de la chaîne.
Utiliser find() avec valeurs par défaut
Quand aucun début ou fin n'est fourni, find() scanne toute la chaîne depuis le début. Elle retourne l'index de la première correspondance ou -1 si aucune n'est trouvée.
Exemple :
ma_chaine = "Rencontrez Guru99 Tutoriels Site. Meilleur site pour Tutoriels Python !"
print("La position de Tutoriels est à :", ma_chaine.find("Tutoriels"))
Sortie :
La position de Tutoriels est à : 12
Spécifier un index de début
Fournir un argument début limite la recherche à commencer à cette position, s'étendant à la fin de la chaîne.
Exemple :
ma_chaine = "Rencontrez Guru99 Tutoriels Site. Meilleur site pour Tutoriels Python !"
print("La position de Tutoriels est à :", ma_chaine.find("Tutoriels", 20))
Sortie :
La position de Tutoriels est à : 48
Définir une plage début et fin
En fournissant à la fois début et fin, vous pouvez confiner la recherche à une tranche spécifique de la chaîne.
Exemple :
ma_chaine = "Rencontrez Guru99 Tutoriels Site. Meilleur site pour Tutoriels Python !"
print("La position de Tutoriels est à :", ma_chaine.find("Tutoriels", 5, 30))
Sortie :
La position de Tutoriels est à : 12
Trouver positions et gérer sous-chaînes manquantes
Voici comment find() se comporte quand la sous-chaîne est présente et quand elle est absente.
Exemple :
ma_chaine = "Rencontrez Guru99 Tutoriels Site. Meilleur site pour Tutoriels Python !"
print("La position de Meilleur site est à :", ma_chaine.find("Meilleur site", 5, 40))
print("La position de Guru99 est à :", ma_chaine.find("Guru99", 20))
Sortie :
La position de Meilleur site est à : 27 La position de Guru99 est à : -1
Comparer avec rfind()
rfind() est similaire à find() mais retourne l'index le plus haut où la sous-chaîne ocorre. Si la sous-chaîne n'est pas présente, les deux méthodes retournent -1.
Exemple :
ma_chaine = "Rencontrez Guru99 Tutoriels Site. Meilleur site pour Tutoriels Python !"
print("La position de Tutoriels avec find() : ", ma_chaine.find("Tutoriels"))
print("La position de Tutoriels avec rfind() : ", ma_chaine.rfind("Tutoriels"))
Sortie :
La position de Tutoriels avec find() : 12 La position de Tutoriels avec rfind() : 48
Comparer avec index()
La méthode index() se comporte comme find() mais lève une ValueError quand la sous-chaîne est manquante.
Exemple :
ma_chaine = "Rencontrez Guru99 Tutoriels Site. Meilleur site pour Tutoriels Python !"
print("La position de Tutoriels avec find() : ", ma_chaine.find("Tutoriels"))
print("La position de Tutoriels avec index() : ", ma_chaine.index("Tutoriels"))
Sortie :
La position de Tutoriels avec find() : 12 La position de Tutoriels avec index() : 12
Quand la sous-chaîne n'est pas trouvée :
ma_chaine = "Rencontrez Guru99 Tutoriels Site. Meilleur site pour Tutoriels Python !"
print("La position de Tutoriels avec find() : ", ma_chaine.find("test"))
print("La position de Tutoriels avec index() : ", ma_chaine.index("test"))
Sortie :
La position de Tutoriels avec find() : -1 Traceback (most recent call last): File "task1.py", line 3, inprint("La position de Tutoriels avec index() : ", ma_chaine.index("test")) ValueError: substring not found
Compter les occurrences de sous-chaînes
Pour compter combien de fois une sous-chaîne apparaît, itérez sur la chaîne et appelez répétitivement find() avec un index de début mis à jour.
Exemple :
ma_chaine = "test string test, test string testing, test string test string"
indexDebut = 0
compteur = 0
for _ in range(len(ma_chaine)):
k = ma_chaine.find('test', indexDebut)
if k != -1:
indexDebut = k + 1
compteur += 1
print("Le compte total de la sous-chaîne test est :", compteur)
Sortie :
Le compte total de la sous-chaîne test est : 6
Points clés à retenir
find()retourne le premier index correspondant ou-1si absent.- Paramètres :
sous_chaîne,débutoptionnel (défaut 0),finoptionnel (défaut longueur chaîne). - Utilisez
débutpour commencer la recherche à une position spécifique. - Utilisez
débutetfinpour limiter la recherche à une tranche de sous-chaîne. rfind()retourne le dernier index correspondant.index()est plus strict, levant une erreur quand la sous-chaîne manque.- Boucler avec
find()peut compter les occurrences totales.
Python
- Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques
- Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples
- Maîtriser les chaînes format() en Python avec exemples clairs
- Python len() : Guide pratique pour mesurer la longueur des objets
- Maîtriser les fonctions lambda Python : exemples pratiques et bonnes pratiques
- Fonction Python round() expliquée avec exemples pratiques
- Maîtriser la fonction Python map() : syntaxe, exemples et bonnes pratiques
- Python timeit() : mesurer le temps d'exécution avec exemples pratiques
- Comprendre type() et isinstance() en Python : exemples pratiques