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)
pythonNeste 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
pythonComo 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.
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!")
pythonNeste 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.
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 :/")
pythonEste 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))
pythonNeste 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.
À 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ê!