¿Cómo puedo verificar si una cadena contiene ALGUNAS letras del alfabeto?

¿Cuál es la mejor implementación de Python pura para verificar si una cadena contiene ALGUNAS letras del alfabeto?

string_1 = "(555).555-5555" string_2 = "(555) 555 - 5555 ext. 5555 

Donde string_1 devolvería False por no tener letras del alfabeto y string_2 devolvería True por tener letra.

Regex debería ser un enfoque rápido:

 re.search('[a-zA-Z]', the_string) 

Qué tal si:

 >>> string_1 = "(555).555-5555" >>> string_2 = "(555) 555 - 5555 ext. 5555" >>> any(c.isalpha() for c in string_1) False >>> any(c.isalpha() for c in string_2) True 

Puedes usar islower() en tu cadena para ver si contiene algunas letras minúsculas (entre otros caracteres). or con isupper() también para verificar si contiene algunas letras mayúsculas:

abajo: letras en la cadena: prueba de rendimientos verdaderos

 >>> z = "(555) 555 - 5555 ext. 5555" >>> z.isupper() or z.islower() True 

abajo: no hay letras en la cadena: la prueba produce falso.

 >>> z= "(555).555-5555" >>> z.isupper() or z.islower() False >>> 

No debe mezclarse con isalpha() que devuelve True solo si todos los caracteres son letras, lo que no es lo que desea.

Tenga en cuenta que la respuesta de Barm completa la mía muy bien, ya que la mía no maneja bien el caso mixto.

Puedes usar expresiones regulares como esta:

 import re print re.search('[a-zA-Z]+',string) 

Me gustó la respuesta proporcionada por @ jean-françois-fabre , pero está incompleta.
Su enfoque funcionará, pero solo si el texto contiene letras puramente en minúsculas o mayúsculas:

 >>> text = "(555).555-5555 extA. 5555" >>> text.islower() False >>> text.isupper() False 

El mejor enfoque es primero en mayúsculas o minúsculas y luego verifique.

 >>> string1 = "(555).555-5555 extA. 5555" >>> string2 = '555 (234) - 123.32 21' >>> string1.upper().isupper() True >>> string2.upper().isupper() False 

También puedes hacer esto además.

 import re string='24234ww' val = re.search('[a-zA-Z]+',string) val[0].isalpha() # returns True if the variable is an alphabet print(val[0]) # this will print the first instance of the matching value 

También tenga en cuenta que si la variable val devuelve Ninguno. Eso significa que la búsqueda no encontró una coincidencia.