¿Cómo comprobar si el carácter en una cadena es una letra? Pitón

¿Así que sé sobre isower y isupper, pero parece que no puedo saber si puedes verificar si ese personaje es una letra o no?

Example: s = 'abcdefg' s2 = '123abcd' s3 = 'abcDEFG' s[0].islower() = True s2[0].islower()= False s3[0].islower()=True 

¿Hay alguna forma de preguntar si es un personaje además de hacer .islower () o .isupper ()?

Puede usar isalpha() , consulte los documentos en http://docs.python.org/2/library/stdtypes.html

Un ejemplo:

 >>> s = "a123b" >>> for char in s: ... print char, char.isalpha() ... a True 1 False 2 False 3 False b True 
 str.isalpha() 

Devuelva verdadero si todos los caracteres de la cadena son alfabéticos y hay al menos un carácter, de lo contrario, falso. Los caracteres alfabéticos son aquellos caracteres definidos en la base de datos de caracteres Unicode como “Carta”, es decir, aquellos con propiedad de categoría general como “Lm”, “Lt”, “Lu”, “Ll” o “Lo”. Tenga en cuenta que esto es diferente de la propiedad “Alfabética” definida en el estándar de Unicode.

En python2.x:

 >>> s = u'a1中文' >>> for char in s: print char, char.isalpha() ... a True 1 False中 True文 True >>> s = 'a1中文' >>> for char in s: print char, char.isalpha() ... a True 1 False   False   False   False   False   False   False >>> 

En python3.x:

 >>> s = 'a1中文' >>> for char in s: print(char, char.isalpha()) ... a True 1 False中 True文 True >>> 

Este código funciona:

 >>> def is_alpha(word): ... try: ... return word.encode('ascii').isalpha() ... except: ... return False ... >>> is_alpha('中国') False >>> is_alpha(u'中国') False >>> >>> a = 'a' >>> b = 'a' >>> ord(a), ord(b) (65345, 97) >>> a.isalpha(), b.isalpha() (True, True) >>> is_alpha(a), is_alpha(b) (False, True) >>> 

Encontré una buena manera de hacer esto usando una función y un código básico. Este es un código que acepta una cadena y cuenta el número de letras mayúsculas, minúsculas y también “otros”. Otro se clasifica como un espacio, signo de puntuación o incluso caracteres japoneses y chinos.

 def check(count): lowercase = 0 uppercase = 0 other = 0 low = 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' upper = 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' for n in count: if n in low: lowercase += 1 elif n in upper: uppercase += 1 else: other += 1 print("There are " + str(lowercase) + " lowercase letters.") print("There are " + str(uppercase) + " uppercase letters.") print("There are " + str(other) + " other elements to this sentence.") 

este código funciona:

 str=raw_input("enter a string:") for char in word: if not char.isalpha(): sum=sum+1 if sum>0: print char