O método index() pode ser usado para pesquisar uma string e recuperar o índice de uma substring em Python. Com ele, você pode pesquisar toda string em Python ou somente parte dela.

Sintaxe e fun­ci­o­na­li­dade de Python string index

A sintaxe do método index é muito fácil de explicar. Ele pode ser invocado com um, dois ou três ar­gu­men­tos, sendo os dois últimos opcionais. O primeiro argumento é sempre a substring que você deseja procurar na string. Os dois ar­gu­men­tos opcionais são os índices nos quais a pesquisa deve ser iniciada ou in­ter­rom­pida. Você pode usar esses ar­gu­men­tos se estiver pro­cu­rando pela substring apenas em uma de­ter­mi­nada área da string. O trecho de código a seguir ilustra a sintaxe deste método:

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

Neste exemplo, string é uma string ar­bi­trá­ria e substring é a substring a ser procurada. start e end indicam os índices de início e fim da pesquisa. Se nenhum índice de fim for es­pe­ci­fi­cado (se houver apenas dois ar­gu­men­tos no total), a pesquisa terminará no final da string. O método retorna o índice da primeira ocor­rên­cia da substring como valor de retorno. Portanto, se uma substring ocorrer mais de uma vez, todas as ocor­rên­cias após a primeira são ignoradas pelo index(). Aqui está um exemplo de como o método funciona.

string = "I am a string"
print(string.index("am"))
# saída: 2
print(string.index("in"))
# saída: 5 (o "in" em "string")
print(string.index("in", 7, len(string) - 1))
# saída: 12 (o "in" em "string")
print(string.index("in", 7))
# saída: 12 (o "in" em "string")
print(string.index("Python"))
# mensagem de erro: ValueError
python

Como você pode ver no exemplo acima, a segunda chamada do index() retorna apenas o índice do “am” em “I am”, ou seja, outras ocor­rên­cias de “am” são ignoradas. Na última chamada do index(), observe que o método retorna uma exceção (ValueError) se a substring não estiver incluída. Esta exceção também aparecerá se forem inseridos índices negativos ou se o índice inicial for maior que o índice final. Se um desses casos puder ocorrer no seu código, você terá a pos­si­bi­li­dade de tratar a exceção ade­qua­da­mente.

Dica

Processar strings é uma tarefa cor­ri­queira da pro­gra­ma­ção em Python. Por isso, é im­por­tante que as strings sejam salvas e exibidas no formato apro­pri­ado. No nosso artigo sobre formatos de strings em Python, ex­pli­ca­mos mais de­ta­lha­da­mente como você pode adaptar o formato das strings às suas ne­ces­si­da­des.

Al­ter­na­tiva ao Python string index: método find

De­pen­dendo do seu objetivo, o método find pode ser uma escolha melhor que o método index. Ele é quase idêntico ao método index, mas tem uma diferença im­por­tante: se a substring não for en­con­trada, nenhuma exceção é criada. Em vez disso, ele sim­ples­mente retorna -1. Como uma exceção não tratada causaria uma falha no seu código, o find pode ser muito benéfico a quem não puder ou quiser lidar com uma possível exceção. O tra­ta­mento da exceção pode até ser simulado com uma condição if, conforme mostrado aqui:

string = "Python"
if(string.find("Py") != -1):
    print("Substring incluída! Índice: " + str(string.find("Py")))
else:
    print("Substring não incluída!")
python

Neste exemplo, se a substring não for en­con­trada, abre-se uma ra­mi­fi­ca­ção, assim como ocorre com uma exceção. A maior diferença é que find(), no código acima, precisa ser executado várias vezes quando a substring é en­con­trada.

Dica

Python é uma das lin­gua­gens de pro­gra­ma­ção mais flexíveis que existem, e oferece muitas opções em termos de strings. Descubra di­fe­ren­tes maneiras de comparar strings em Python.

Exemplos de Python string index

Observe, agora, como o método index() pode ser usado em um código. Primeiro, apre­sen­ta­re­mos um exemplo simples e depois um código um pouco mais complexo.

string = “Peter Piper picked a peck of pickled peppers.” print(“A string a ser ve­ri­fi­cada é “ + string)

while(True):
    sub = input("Insira a substring: ")
    try:
        print("O índice é: " + str(string.index(sub)))
    except:
        print("A substring não está incluída :/")
python

Este exemplo procura uma substring em uma string. Em seguida, ele mostra se a substring está contida na string e, em caso afir­ma­tivo, em que índice. Neste caso, a string que estamos pro­cu­rando é pre­de­ter­mi­nada, mas a substring é rein­se­rida pelo usuário a cada vez.

def try_except(start):
    try:
        return string.index(sub, start)
    except:
        return -1
string = input("Insira a string: ")
sub = input("Insira a substring: ")
occur = 0
start = 0
while(try_except(start) != -1):
    start = try_except(start) + len(sub)
    occur = occur + 1
print("Ocorrências: " + str(occur))
python

Neste exemplo, uma string inserida pelo usuário é ve­ri­fi­cada quanto a uma substring. Se uma ocor­rên­cia da substring for en­con­trada na string, o número de ocor­rên­cias é in­cre­men­tado e a pesquisa é rei­ni­ci­ada. Quando o final da string é alcançado, o número total de ocor­rên­cias é exibido e o código se encerra.

Dica

À procura de uma maneira de publicar sua aplicação web de forma rápida e fácil? Então o Deploy Now da IONOS é a pla­ta­forma perfeita para você!

Ir para o menu principal