1
resposta

Operadores

Bom dia, estudando sobre os operadores relacionais, me surgiu uma dúvida em relação ao exemplo do operador de igualdade (==) com os títulos de livros.

Se o usuário digitar o mesmo título, mas com diferenças de maiúsculas/minúsculas ou com um espaço acidental no final (ex: 'Verso e Código' e 'verso e código '), o Python vai considerar como diferente? Qual seria a melhor prática para limpar ou padronizar essas strings de input antes de fazer a comparação com o == para evitar que o sistema retorne um falso negativo?

1 resposta

Olá, Ruan! Tudo bem?

Quando utilizamos o operador de igualdade ==, o Python faz uma comparação exata, ou seja, ele considera diferenças de maiúsculas/minúsculas e espaços adicionais como sendo strings diferentes. Portanto, no seu exemplo, 'Verso e Código' e 'verso e código ' seriam considerados diferentes.

Para evitar esse tipo de problema, uma boa prática é padronizar as strings antes de compará-las. Isso pode ser feito convertendo todas as letras para minúsculas e removendo espaços em excesso. Aqui estão algumas dicas de como você pode fazer isso:

  1. Converter para minúsculas: Use o método .lower() para converter todas as letras da string para minúsculas.

    titulo_1 = 'Verso e Código'.lower()
    titulo_2 = 'verso e código '.lower()
    
  2. Remover espaços em excesso: Use o método .strip() para remover espaços em branco no início e no final da string.

    titulo_1 = titulo_1.strip()
    titulo_2 = titulo_2.strip()
    

Com essas duas etapas, você pode comparar as strings de forma mais confiável:

titulo_1 = input('Digite o título do 1° livro: ').lower().strip()
titulo_2 = input('Digite o título do 2° livro: ').lower().strip()

if titulo_1 == titulo_2:
    print('Os livros têm o mesmo título')
else:
    print('Os livros têm títulos diferentes')

Você já conhecia outros métodos de manipulação de strings no Python além do .lower() e .strip()?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!