String Python contém para encontrar substrings

A string Python contém usa o operador in para verificar se uma substring aparece no texto. Use-o quando precisar de um teste rápido de sim/não para rotear lógica, validar entrada ou filtrar mensagens. Ele fornece uma maneira simples e legível de testar se o texto contém uma substring.

String Python contém exemplo para correspondência de texto

Saída:

A saída aparecerá aqui...

Saída:

send tracking

Como este exemplo funciona

  • A string status contém uma breve mensagem de status.
  • A expressão "shipped" in status realiza um teste de associação de substring e retorna True.
  • Como a condição é verdadeira, a chamada print é executada.
  • A saída mostra que a ação é acionada apenas quando a palavra-chave está presente.

Erros Comuns

Erro 1: presumir que a verificação não diferencia maiúsculas de minúsculas.

subject = "Order Shipped"
if "shipped" in subject:
    print("send tracking")
subject = "Order Shipped"
if "shipped" in subject.casefold():
    print("send tracking")

Por que isso acontece: in compara os caracteres exatamente, portanto, as letras maiúsculas e minúsculas devem corresponder. Normalize ambas as strings (geralmente com casefold()) quando desejar verificações que não diferenciam maiúsculas de minúsculas.

Erro 2: usar find() em uma verificação da veracidade.

message = "promo"
if message.find("pro"):
    print("flag")
message = "promo"
if "pro" in message:
    print("flag")

Por que isso acontece: find() retorna o índice e o índice 0 é falso mesmo quando a substring é encontrada. Use in para uma verificação de conteúdo booleano ou compare find() com -1 se precisar do índice.

Erro 3: esquecer que strings vazias sempre correspondem.

needle = ""
text = "invoice 123"
if needle in text:
    print("match")
needle = ""
text = "invoice 123"
if needle and needle in text:
    print("match")

Por que isso acontece: Python trata a string vazia como uma substring de cada string. Proteja-se contra entradas vazias quando isso significar “sem correspondência”.

string contém vs find: qual usar

NecessidadeUsar
Apenas uma resposta sim/nãoneedle in text
A posição da partidatext.find(needle)
Um erro ao faltartext.index(needle)

Use in para o teste de adesão mais rápido e claro. Use find() ou index() somente quando você também precisar da posição de correspondência ou quiser que uma falha gere um erro.

Considerações de desempenho

Uma string contém verificação que varre o texto linearmente, então cada teste in tem O(n) no comprimento do texto. Para verificações repetidas que não diferenciam maiúsculas de minúsculas, normalize o texto uma vez (por exemplo, text = text.casefold()) e reutilize-o para evitar trabalho extra. Se você precisar pesquisar muitos padrões diferentes em strings muito grandes, considere uma pesquisa mais especializada ou regex somente quando o padrão precisar.

Quando usar a string Python contém

  • Você precisa de uma verificação rápida de substring para decidir qual ramo da lógica executar.
  • Você está validando a entrada procurando palavras-chave ou marcadores necessários.
  • Você deseja o teste booleano mais claro possível em vez de um resultado de índice.
  • Você não precisa de curingas ou padrões complexos; para esses, use re.
  • Não precisa da posição da partida; se fizer isso, use find() ou index().