# 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](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-string/ "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:

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

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.

```python
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
```

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:

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

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](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/comparar-strings-em-python/ "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)

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

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.

```python
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))
```

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](https://www.ionos.com/hosting/deploy-now "Deploy Now — IONOS") da IONOS é a plataforma perfeita para você!


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-string-index/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-string-index/) for AI/LLM consumption.