Python verificar si una cadena contiene otra cadena

La manipulación de cadenas es una tarea común en cualquier lenguaje de programación. Python proporciona dos formas comunes de verificar si una cadena contiene otra cadena.

Python verifica si una cadena contiene otra cadena

La cadena en Python admite el operador in, por lo que podemos usarlo para verificar si una cadena es parte de otra cadena o no. La sintaxis del operador in es:

sub in str

Devuelve True si la cadena “sub” es parte de “str”, de lo contrario devuelve False. Veamos algunos ejemplos de cómo usar el operador in en 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}"')

Salida:

"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"

Si no estás familiarizado con las cadenas con prefijo f en Python, es una nueva forma de formatear cadenas introducida en Python 3.6. Puedes obtener más información al respecto en cadenas con prefijo f en Python.

Cuando usamos el operador in, internamente llama a la función __contains__(). También podemos usar esta función directamente, aunque se recomienda usar el operador in por razones de legibilidad.

s = 'abc'

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

Salida:

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

Usando find() para verificar si una cadena contiene otra subcadena

También podemos usar la función find() de la cadena para verificar si una cadena contiene o no una subcadena. Esta función devuelve la primera posición del índice donde se encuentra la subcadena, de lo contrario devuelve -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}"')

Salida:

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

Puedes revisar el script completo de Python y más ejemplos de Python desde nuestro Repositorio de GitHub.

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