Этот index()метод можно использовать для поиска в строке Python, чтобы найти индекс подстроки Python. В качестве области поиска вы можете указать всю строку Python или только ее часть.
Индекс Python String: синтаксис и функциональность
Синтаксис метода indexочень легко объяснить. Метод можно вызвать с одним, двумя или тремя аргументами, причем последние два являются необязательными. Первым аргументом всегда является подстрока, на наличие которой должна быть проверена строка. Два необязательных аргумента — это индексы, с которых можно начать и остановить поиск соответственно. Их следует передавать только в том случае, если на самом деле необходимо проверить только определенную область строки на наличие подстроки. Следующий раздел кода иллюстрирует синтаксис этого метода:
string.index(substring) string.index(substring, start, end)
В этом примере это stringлюбая строка и substringподстрока для поиска. startи endявляются начальным и конечным индексами поиска соответственно. Если конечный индекс не указан (т.е. всего два аргумента), поиск просто выполняется до конца строки. Метод возвращает индекс первого вхождения подстроки в качестве возвращаемого значения. Таким образом, если подстрока встречается более одного раза, все вхождения после первой из игнорируются. В следующем примере объясняется, как работает этот метод.index()
string = "Ich bin ein String" print(string.index("String")) print(string.index("in")) # Ausgabe: 5 (das "in" in "bin") print(string.index("in", 7, len(string) - 1)) # Ausgabe: 9 (das "in" in "ein") print(string.index("in", 7)) # Ausgabe: 9 (das "in" in "ein") print(string.index("Python")) # Exception-Fehlermeldung: ValueError
Как видно из примера выше, второй вызов возвращает только индекс «in» в «bin». Другие вхождения «in» игнорируются. При последнем вызове вы можете видеть, что метод возвращает исключение «ValueError», если подстрока не включена. Это исключение также генерируется, если введены отрицательные индексы или начальный индекс больше конечного индекса. Если любой из этих случаев возможен в вашей программе, исключение должно быть обработано соответствующим образом.index()index()
Альтернатива: метод find
В зависимости от того, для чего вам нужен метод индекса, метод find может быть лучшим выбором. Он почти идентичен индексному методу, с одним важным отличием: если подстрока не найдена, исключение не создается. Вместо этого он просто возвращается. Поскольку необработанное исключение может привести к сбою вашей программы, это может быть очень полезно, если вы не можете или не хотите обрабатывать возможное исключение. Обработку исключения можно даже смоделировать с помощью условия if, как в следующем примере:-1
string = "Python" if(string.find("Py") != -1): print("Substring enthalten! Index: ", string.find("Py")) else: print("Substring nicht enthalten!")
В этом примере есть ветвь на случай, если подстрока не найдена, как и при обработке исключения. Самое большое отличие состоит в том, что этот пример необходимо выполнить несколько раз, когда будет найдена подстрока.find()
Примеры строкового индекса Python
Теперь мы покажем два примера того, как можно использовать в программе. Сначала мы приведем простой пример, затем немного более сложный.index()
string = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz" print("Der zu überprüfende String ist ", string) while(True): sub = input("Substring eingeben: ") try: print("Der Index ist: ", string.index(sub)) except: print("Der Substring ist nicht enthalten :/")
В этом примере выполняется поиск подстроки в строке. Затем выводится, содержится ли подстрока в строке, и если да, то по какому индексу она находится. В этом случае проверяемая строка заранее определена, но подстрока вводится пользователем каждый раз заново.
def try_except(start): try: return string.index(sub, start) except: return -1 string = input("String eingeben: ") sub = input("Substring eingeben: ") vorkommen = 0 start = 0 while(try_except(start) != -1): start = try_except(start) + len(sub) vorkommen = vorkommen + 1 print("Vorkommen: ", vorkommen)
В этом примере строка, введенная пользователем, проверяется на наличие подстроки. Если в строке обнаружено вхождение подстроки, количество вхождений увеличивается, и поиск начинается снова с этой точки. Когда достигается конец строки, выводится общее количество вхождений и программа завершается.








