Python string index: Como encontrar a posição de uma substring

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 funcionalidade 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 argumentos, sendo os dois últimos opcionais. O primeiro argumento é sempre a substring que você deseja procurar na string. Os dois argumentos opcionais são os índices nos quais a pesquisa deve ser iniciada ou interrompida. Você pode usar esses argumentos se estiver procurando pela substring apenas em uma determinada á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 arbitrá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 especificado (se houver apenas dois argumentos no total), a pesquisa terminará no final da string. O método retorna o índice da primeira ocorrência da substring como valor de retorno. Portanto, se uma substring ocorrer mais de uma vez, todas as ocorrências 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"))
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 ocorrências 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 possibilidade de tratar a exceção adequadamente.

Dica

Processar strings é uma tarefa corriqueira da programação em Python. Por isso, é importante que as strings sejam salvas e exibidas no formato apropriado. No nosso artigo sobre formatos de strings em Python, explicamos mais detalhadamente como você pode adaptar o formato das strings às suas necessidades.

Alternativa ao Python string index: método find

Dependendo 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 importante: se a substring não for encontrada, nenhuma exceção é criada. Em vez disso, ele simplesmente 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 tratamento 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 encontrada, abre-se uma ramificaçã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 é encontrada.

Dica

Python é uma das linguagens de programação mais flexíveis que existem, e oferece muitas opções em termos de strings. Descubra diferentes 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, apresentaremos 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 verificada é “ + 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 afirmativo, em que índice. Neste caso, a string que estamos procurando é predeterminada, mas a substring é reinserida 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 é verificada quanto a uma substring. Se uma ocorrência da substring for encontrada na string, o número de ocorrências é incrementado e a pesquisa é reiniciada. Quando o final da string é alcançado, o número total de ocorrências é 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 plataforma perfeita para você!

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top