# Como comparar strings em Python

Comparar strings em [Python](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-string/ "Strings em Python") é uma tarefa comum e diária na programação. Comparações são usadas para interpretar entradas do usuário, verificar grandes conjuntos de dados e trabalhar com protocolos baseados em texto. Conheça diferentes formas de comparar strings em Python com os nossos exemplos práticos.

## Operadores e métodos para comparar strings em Python

Python oferece aos usuários um conjunto completo de operadores de comparação de strings, além de funções preestabelecidas que tornam a comparação de strings mais fácil e rápida. Primeiro, apresentaremos os principais operadores de comparação e, em seguida, os respectivos métodos. Depois, analisaremos dois exemplos de código que ilustrarão como operadores e métodos funcionam.

### Operadores de comparação

A maneira mais fácil de comparar duas strings em Python é com [operadores Python](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/operadores-python/ "Operadores em Python"). Da mesma forma que com números inteiros ou de ponto flutuante, **operadores de comparação podem ser usados para verificar se strings são iguais**. No entanto, operadores, neste contexto, não funcionam como números, pois várias propriedades de string podem ser comparadas. A tabela abaixo fornece uma visão geral dos operadores de comparação e suas funções.

<table>
  <thead>
    <tr>
      <th><strong>Operador</strong></th>
      <th><strong>Descrição</strong></th>
      <th><strong>Exemplo</strong></th>
      <th><strong>Valor de retorno</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`==`</td>
      <td>Strings são iguais</td>
      <td>`"Hello" == "hello"`</td>
      <td><strong>falso</strong></td>
    </tr>
    <tr>
      <td>`!=`</td>
      <td>Strings não são iguais</td>
      <td>`"Hello" != "hello"`</td>
      <td><strong>verdadeiro</strong></td>
    </tr>
    <tr>
      <td>`<`</td>
      <td>Ordem lexicográfica menor</td>
      <td>`"Australia" < "Zimbabwe"`</td>
      <td><strong>verdadeiro</strong></td>
    </tr>
    <tr>
      <td>`>`</td>
      <td>Ordem lexicográfica maior</td>
      <td>`"Australia" > "Zimbabwe"`</td>
      <td><strong>falso</strong></td>
    </tr>
    <tr>
      <td>`<=`</td>
      <td>Ordem lexicográfica menor ou igual</td>
      <td>`"Germany" <= "United States"`</td>
      <td><strong>falso</strong></td>
    </tr>
    <tr>
      <td>`>=`</td>
      <td>Ordem lexicográfica maior ou igual</td>
      <td>`"Germany" <= "Germany"`</td>
      <td><strong>verdadeiro</strong></td>
    </tr>
  </tbody>
</table>

Aqui, **ordem lexicográfica é o termo técnico para ordem alfabética**. Ambas as expressões significam a mesma coisa. Palavras com uma ordem lexicográfica baixa vêm antes, no alfabeto, do que palavras com uma ordem lexicográfica alta. Assim, a string “abcd” tem uma ordem lexicográfica menor que a string “xyz”.

Espaços vazios em strings têm a menor ordem lexicográfica entre todos os caracteres. Assim, se você pegar os primeiros caracteres de uma string como substring Python, essa substring sempre terá uma ordem menor que a string original. Por exemplo, a string “Alex” tem uma ordem lexicográfica menor que a string “Alexander”.

Lembre-se de que, em Python, **a ordem lexicográfica nem sempre coincide com a ordem alfabética**. Por exemplo, Python avalia a expressão “a &lt; b” como verdadeira, mas a expressão “a &lt; B” como falsa. Isso ocorre porque, nos padrões ASCII e Unicode, letras maiúsculas sempre são codificadas com valores menores do que letras minúsculas.

Nota Além de comparar strings, formatar textos é parte importante da programação. No nosso artigo sobre formatar strings em Python, apresentamos os métodos e operadores de formatação mais importantes.

### Métodos de comparação

Além de operadores de comparação, existem alguns métodos embutidos que possibilitam a comparação de strings de acordo com outros critérios:

<table>
  <thead>
    <tr>
      <th><strong>Método</strong></th>
      <th><strong>Descrição</strong></th>
      <th><strong>Exemplo</strong></th>
      <th><strong>Valor de retorno</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`.startswith()`</td>
      <td>Retorna “verdadeiro” quando as primeiras letras de uma string coincidem com outra string</td>
      <td>`"Benjamin".startswith("Ben")`</td>
      <td><strong>verdadeiro</strong></td>
    </tr>
    <tr>
      <td>`.endswith()`</td>
      <td>Retorna “verdadeiro” quando as últimas letras de uma string coincidem com outra string</td>
      <td>`"Benjamin".endswith("jasmin")`</td>
      <td><strong>falso</strong></td>
    </tr>
    <tr>
      <td>`.find()`</td>
      <td>Retorna o índice da primeira ocorrência de uma substring; se a substring não ocorrer, retorna -1.</td>
      <td>`"Christmas".find("mas")`</td>
      <td><strong>4</strong></td>
    </tr>
  </tbody>
</table>

## Exemplo de código que compara strings em Python

Para mostrar como os operadores e métodos apresentados funcionam, elaboramos dois exemplos. Um deles é fácil, já o outro é um pouco mais complexo.

### Verificar se lista está em ordem alfabética

Neste exemplo, o programa cria uma lista a partir do texto de entrada. Em seguida, ele usa operadores de comparação para verificar se a lista está ordenada alfabeticamente.

```python
input_list = []
while(True):
    temp = input('Por favor, insira uma palavra. Se não quiser inserir mais palavras, digite \'.\'')
    if temp == '.':
        break
    input_list.append(temp)
print('Sua entrada: ', input_list)
i = 0
alph = 1
while(i < len(input_list) - 1):
    if(input_list[i] > input_list[i + 1]):
        print('Esta lista não está ordenada alfabeticamente!')
        alph = 0
        break
    i = i + 1
if(alph == 1):
    print('Esta lista está ordenada alfabeticamente.')
```

### Realizar buscas em bancos de dados de pessoas

Neste exemplo mais complexo, o usuário é solicitado a inserir sobrenomes e nomes de pessoas. Estes são armazenados em uma lista que, por sua vez, é integrada a uma lista maior. Isso cria uma lista aninhada, na qual cada sublista contém o primeiro e o último nome de uma pessoa. Essa grande lista é, então, ordenada alfabeticamente por sobrenome. Agora, o usuário pode inserir o texto novamente, para buscar por pessoas no banco de dados. Isso é feito usando o método de comparação `.find()`.

```python
# Entrada
people = []
while(True):
    temp = input('Por favor, insira o sobrenome da pessoa. Se você não quiser inserir mais pessoas, digite \'.\'')
    if temp == '.':
        break
    person = []
    person.append(temp)
    temp = input('Por favor, insira o primeiro nome da pessoa.')
    person.append(temp)
    people.append(person)
print('Sua entrada: ', people)
# Ordenar
people.sort()
print('Ordenado: ', people)
# Função de busca
while(True):
    search = input('Por favor, insira a string para procurar no banco de dados. Se você não quiser mais procurar por pessoas, digite \'.\'')
    if search == '.':
        break
    for i in people:
        if(i[0].find(search) != -1 or i[1].find(search) != -1):
            print('Correspondência encontrada: ', i[0], ' ', i[1])
```

Dica Quer publicar sua aplicação web com rapidez e sem muito esforço? Sem problemas! O [Deploy Now](https://www.ionos.com/hosting/deploy-now "Deploy Now — IONOS") da IONOS pode ser a solução perfeita para você.


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