Como comparar strings em Python
Comparar 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. 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.
Operador | Descrição | Exemplo | Valor de retorno |
---|---|---|---|
==
|
Strings são iguais | "Hello" == "hello"
|
falso |
!=
|
Strings não são iguais | "Hello" != "hello"
|
verdadeiro |
<
|
Ordem lexicográfica menor | "Australia" < "Zimbabwe"
|
verdadeiro |
>
|
Ordem lexicográfica maior | "Australia" > "Zimbabwe"
|
falso |
<=
|
Ordem lexicográfica menor ou igual | "Germany" <= "United States"
|
falso |
>=
|
Ordem lexicográfica maior ou igual | "Germany" <= "Germany"
|
verdadeiro |
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 < b” como verdadeira, mas a expressão “a < 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.
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:
Método | Descrição | Exemplo | Valor de retorno |
---|---|---|---|
.startswith()
|
Retorna “verdadeiro” quando as primeiras letras de uma string coincidem com outra string | "Benjamin".startswith("Ben")
|
verdadeiro |
.endswith()
|
Retorna “verdadeiro” quando as últimas letras de uma string coincidem com outra string | "Benjamin".endswith("jasmin")
|
falso |
.find()
|
Retorna o índice da primeira ocorrência 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 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.
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.')
pythonRealizar 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()
.
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])
pythonQuer 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ê.