Python verificar se uma string contém outra string

Manipulação de strings é uma tarefa comum em qualquer linguagem de programação. O Python oferece duas maneiras comuns de verificar se uma string contém outra string.

A string em Python suporta o operador in. Portanto, podemos usá-lo para verificar se uma string faz parte de outra string ou não. A sintaxe do operador in é:

sub in str

Ele retorna True se a substring “sub” fizer parte de “str”, caso contrário, retorna False. Vamos ver alguns exemplos de uso do operador in em Python.

str1 = 'I love Python Programming'

str2 = 'Python'

str3 = 'Java'

print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')

if str2 in str1:
    print(f'"{str1}" contains "{str2}"')
else:
    print(f'"{str1}" does not contain "{str2}"')

Resultado:

"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"

Se você não estiver familiarizado com strings prefixadas por “f” em Python, é uma nova maneira de formatação de strings introduzida no Python 3.6. Você pode ler mais sobre isso em f-strings em Python.

Ao usarmos o operador in, internamente ele chama a função __contains__(). Podemos usar esta função diretamente também, no entanto, é recomendado usar o operador in por questões de legibilidade.

s = 'abc'

print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))

Resultado:

s contains a = True
s contains A = False
s contains X = False

Usando find() para verificar se uma string contém outra substring

Também podemos usar a função find() de string para verificar se uma string contém uma substring ou não. Essa função retorna a primeira posição do índice onde a substring é encontrada, caso contrário retorna -1.

str1 = 'I love Python Programming'

str2 = 'Python'

str3 = 'Java'

index = str1.find(str2)
if index != -1:
    print(f'"{str1}" contains "{str2}"')
else:
    print(f'"{str1}" does not contain "{str2}"')

index = str1.find(str3)
if index != -1:
    print(f'"{str1}" contains "{str3}"')
else:
    print(f'"{str1}" does not contain "{str3}"')

Saída:

"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"

Você pode conferir o script completo em Python e mais exemplos de Python em nosso Repositório GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string