Avec Python, la méthode « index() » permet d’effectuer une recherche au niveau d’une chaîne de ca­rac­tères (String) de manière à iden­ti­fier l’index d’une Python Substring (qu’on tra­dui­rait par « sous-chaîne). Vous pouvez décider d’effectuer votre recherche sur l’in­té­gra­lité de la Python String concernée, ou sur une partie de celle-ci uni­que­ment.

Python String index : syntaxe et fonc­tion­ne­ment

La syntaxe de la méthode « index » est simple à expliquer. Vous pouvez appeler cette méthode avec un, deux ou trois arguments, en sachant que les deux derniers sont fa­cul­ta­tifs. Le premier argument cor­res­pond forcément à la Substring en fonction de laquelle la chaîne de ca­rac­tères doit être analysée. Les deux arguments fa­cul­ta­tifs re­pré­sen­tent les index à partir desquels la recherche doit être lancée ou arrêtée. Ceux-ci doivent uni­que­ment être transmis si seule une certaine partie de la String doit être examinée en fonction de la sous-chaîne. Vous trouverez ci-dessous une section de code qui illustre la syntaxe de cette méthode.

string.index(substring)
string.index(substring, start, end)
Python

Dans cet exemple, « string » désigne une chaîne de ca­rac­tères quel­conque, tandis que « substring » cor­res­pond à la sous-chaîne à re­cher­cher. « start » et « end »indiquent res­pec­ti­ve­ment les index de début et de fin de la recherche. Si aucun index de fin n’est précisé (pour un total de deux arguments uni­que­ment), la recherche est sim­ple­ment effectuée jusqu’à la fin de la String. La méthode renvoie alors l’index de la première oc­cur­rence de la Substring en tant que valeur de retour. De cette manière, si une Substring apparaît plusieurs fois, « index() » va ignorer toutes les oc­cur­rences hormis la première.

L’exemple ci-dessous permet lui aussi d’illustrer le fonc­tion­ne­ment de la méthode :

string = "Je suis une chaîne de caractères"
print(string.index("chaîne"))
# Résultat : 18
print(string.index("suis"))
# Résultat : 3 (le "suis" dans "Je suis")
print(string.index("suis", 7, len(string) - 1))
# Résultat : 3 (le "suis" dans "Je suis")
print(string.index("suis", 7))
# Résultat : 3 (le "suis" dans "Je suis")
print(string.index("Python"))
# Erreur d'exception : ValueError
Python

Comme vous pouvez le voir dans l’exemple ci-dessus, lorsque la méthode « index() » est appelée pour la deuxième fois, seul le premier index « suis » est renvoyé pour « Je suis ». Toutes les autres oc­cur­rences de « suis » sont ignorées. En ce qui concerne le dernier appel de la méthode « index() », vous pouvez voir que celle-ci renvoie une ex­pres­sion « Va­lueEr­ror » si elle ne trouve pas la sous-chaîne concernée. Une telle exception est également renvoyée si vous ren­seig­nez des index négatifs, ou encore si l’index « start » est supérieur à l’index « end ». Si l’un de ces cas peut po­ten­tiel­le­ment se présenter dans votre programme, vous devez alors traiter l’exception en con­sé­quence.

Conseil

Le trai­te­ment des Strings est une mission qui revient souvent dans le cadre de la pro­gram­ma­tion Python. Ainsi, il est important d’en­re­gis­trer et d’éditer les Strings dans un format qui soit approprié. Consultez notre article consacré au Python String Format pour découvrir comment adapter le format de vos Strings en fonction de vos besoins.

Autre solution : la méthode find

En fonction de votre uti­li­sa­tion de la méthode index, la méthode find pourrait éven­tuel­le­ment cons­ti­tuer un choix plus judicieux. Elle est presque identique à la méthode index, à un détail près (mais celui-ci a son im­por­tance) : si la sous-chaîne en question n’est pas iden­ti­fiée, aucune exception ne se déclenche. Au lieu de cela, la méthode se contente de renvoyer la valeur « -1 ». Étant donné qu’une exception non traitée pourrait causer une panne au niveau de votre programme, cette méthode pourrait s’avérer très avan­ta­geuse pour vous si vous n’êtes pas en mesure de traiter une éven­tuelle exception ou si vous ne le souhaitez tout sim­ple­ment pas. Vous pouvez même simuler le trai­te­ment de l’exception à l’aide d’une condition if, comme le montre l’exemple ci-dessous :

string = "Python"
if(string.find("Py") != -1):
    print("Sous-chaîne présente ! Index : ", string.find("Py"))
else:
    print("Sous-chaîse non présente !")
Python

Dans cet exemple, une jonction est possible si aucune Substring n’est trouvée (exac­te­ment comme pour le trai­te­ment d’une exception), la prin­ci­pale dif­fé­rence étant que dans cet exemple, il convient d’exécuter plusieurs fois la méthode « find() » si la sous-chaîne vient à être iden­ti­fiée.

Conseil

Au regard des langages de pro­gram­ma­tion dis­po­nibles à ce jour, Python compte parmi les plus flexibles. Il vous permet donc d’effectuer d’in­nom­brables opé­ra­tions sur les Strings. Pour en savoir plus, découvrez notre article sur les dif­fé­rentes façons de comparer des Strings avec Python.

Python String index : exemples

À présent, découvrez avec nous deux exemples il­lus­trant la manière dont la méthode « index() » peut être utilisée dans un programme. Com­men­çons par un exemple simple avant d’en voir un autre, un peu plus complexe.

string = "Les chaussettes de l'archiduchesse sont-elles sèches, archi-sèches ?"
print("La chaîne de caractères à vérifier est ", string)
while(True):
    sub = input("Entrez la sous-chaîne : ")
    try:
        print("L‘index est : ", string.index(sub))
    except:
        print("La sous-chaîne n'est pas présente :/")
Python

Dans cet exemple, une sous-chaîne est re­cher­chée au sein d’une chaîne de ca­rac­tères. Le code indique ensuite si la Substring apparaît dans la String en question et, le cas échéant, à quel index elle se trouve. Dans un tel cas, la String devant être analysée est pré­dé­fi­nie, alors que la Substring est chaque fois ren­seig­née par l’uti­li­sa­teur.

def try_except(start):
    try:
        return string.index(sub, start)
    except:
        return -1
string = input("Entrez la chaîne de caractères : ")
sub = input("Entrez la chaîne de caractères : ")
occurences = 0
start = 0
while(try_except(start) != -1):
    start = try_except(start) + len(sub)
    occurences = occurences + 1
print("Occurences : ", occurences)
Python

Cet exemple illustre la vé­ri­fi­ca­tion de l’oc­cur­rence ou des oc­cur­rences d’une Substring au sein d’une chaîne de ca­rac­tères ren­seig­née par l’uti­li­sa­teur. Si une oc­cur­rence de la sous-chaîne est iden­ti­fiée dans la String, le nombre d’oc­cur­rences est alors in­cré­menté, puis la recherche est relancée à partir de ce point. Une fois la fin de la String atteinte, le nombre total d’oc­cur­rences s’affiche et le programme prend fin.

Conseil

Vous cherchez une solution pour publier votre ap­pli­ca­tion Web de façon rapide et facile ? Alors Deploy Now est vraiment la pla­te­forme IONOS qu’il vous faut !

Aller au menu principal