Comparar strings em Python é uma tarefa comum e diária na pro­gra­ma­ção. Com­pa­ra­ções são usadas para in­ter­pre­tar entradas do usuário, verificar grandes conjuntos de dados e trabalhar com pro­to­co­los baseados em texto. Conheça di­fe­ren­tes formas de comparar strings em Python com os nossos exemplos práticos.

Ope­ra­do­res e métodos para comparar strings em Python

Python oferece aos usuários um conjunto completo de ope­ra­do­res de com­pa­ra­ção de strings, além de funções pre­es­ta­be­le­ci­das que tornam a com­pa­ra­ção de strings mais fácil e rápida. Primeiro, apre­sen­ta­re­mos os prin­ci­pais ope­ra­do­res de com­pa­ra­ção e, em seguida, os res­pec­ti­vos métodos. Depois, ana­li­sa­re­mos dois exemplos de código que ilus­tra­rão como ope­ra­do­res e métodos funcionam.

Ope­ra­do­res de com­pa­ra­ção

A maneira mais fácil de comparar duas strings em Python é com ope­ra­do­res Python. Da mesma forma que com números inteiros ou de ponto flutuante, ope­ra­do­res de com­pa­ra­ção podem ser usados para verificar se strings são iguais. No entanto, ope­ra­do­res, neste contexto, não funcionam como números, pois várias pro­pri­e­da­des de string podem ser com­pa­ra­das. A tabela abaixo fornece uma visão geral dos ope­ra­do­res de com­pa­ra­ção e suas funções.

Operador Descrição Exemplo Valor de retorno
== Strings são iguais "Hello" == "hello" falso
!= Strings não são iguais "Hello" != "hello" ver­da­deiro
< Ordem le­xi­co­grá­fica menor "Australia" < "Zimbabwe" ver­da­deiro
> Ordem le­xi­co­grá­fica maior "Australia" > "Zimbabwe" falso
<= Ordem le­xi­co­grá­fica menor ou igual "Germany" <= "United States" falso
>= Ordem le­xi­co­grá­fica maior ou igual "Germany" <= "Germany" ver­da­deiro

Aqui, ordem le­xi­co­grá­fica é o termo técnico para ordem al­fa­bé­tica. Ambas as ex­pres­sões sig­ni­fi­cam a mesma coisa. Palavras com uma ordem le­xi­co­grá­fica baixa vêm antes, no alfabeto, do que palavras com uma ordem le­xi­co­grá­fica alta. Assim, a string “abcd” tem uma ordem le­xi­co­grá­fica menor que a string “xyz”.

Espaços vazios em strings têm a menor ordem le­xi­co­grá­fica entre todos os ca­rac­te­res. Assim, se você pegar os primeiros ca­rac­te­res 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 le­xi­co­grá­fica menor que a string “Alexander”.

Lembre-se de que, em Python, a ordem le­xi­co­grá­fica nem sempre coincide com a ordem al­fa­bé­tica. Por exemplo, Python avalia a expressão “a < b” como ver­da­deira, mas a expressão “a < B” como falsa. Isso ocorre porque, nos padrões ASCII e Unicode, letras maiús­cu­las sempre são co­di­fi­ca­das com valores menores do que letras mi­nús­cu­las.

Nota

Além de comparar strings, formatar textos é parte im­por­tante da pro­gra­ma­ção. No nosso artigo sobre formatar strings em Python, apre­sen­ta­mos os métodos e ope­ra­do­res de for­ma­ta­ção mais im­por­tan­tes.

Métodos de com­pa­ra­ção

Além de ope­ra­do­res de com­pa­ra­ção, existem alguns métodos embutidos que pos­si­bi­li­tam a com­pa­ra­ção de strings de acordo com outros critérios:

Método Descrição Exemplo Valor de retorno
.startswith() Retorna “ver­da­deiro” quando as primeiras letras de uma string coincidem com outra string "Benjamin".startswith("Ben") ver­da­deiro
.endswith() Retorna “ver­da­deiro” quando as últimas letras de uma string coincidem com outra string "Benjamin".endswith("jasmin") falso
.find() Retorna o índice da primeira ocor­rên­cia de uma substring; se a substring não ocorrer, retorna -1. "Christmas".find("mas") 4

Exemplo de código que compara strings em Python

Para mostrar como os ope­ra­do­res e métodos apre­sen­ta­dos funcionam, ela­bo­ra­mos dois exemplos. Um deles é fácil, já o outro é um pouco mais complexo.

Verificar se lista está em ordem al­fa­bé­tica

Neste exemplo, o programa cria uma lista a partir do texto de entrada. Em seguida, ele usa ope­ra­do­res de com­pa­ra­ção para verificar se a lista está ordenada al­fa­be­ti­ca­mente.

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.')
python

Realizar buscas em bancos de dados de pessoas

Neste exemplo mais complexo, o usuário é so­li­ci­tado a inserir so­bre­no­mes e nomes de pessoas. Estes são ar­ma­ze­na­dos 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 al­fa­be­ti­ca­mente 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 com­pa­ra­ção .find().

# 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])
python
Dica

Quer publicar sua aplicação web com rapidez e sem muito esforço? Sem problemas! O Deploy Now da IONOS pode ser a solução perfeita para você.

Ir para o menu principal