7.10. Clasificación de caracteres

A menudo viene bien examinar un carácter y comprobar si es una letra mayúscula o minúscula, o si es un carácter o un dígito. El modulo string proporciona varias constantes que son útiles para estos menesteres.

La cadena string.lowercase contiene todas las letras que el sistema considera como minúsculas. De forma similar, string.uppercase contiene todas las mayúsculas. Pruebe lo que sigue y vea que obtiene:

   1: >>> print string.lowercase
   2: >>> print 
   3: string.uppercase
   4: >>> print string.digits

Podemos usar estas constantes y find para clasificar caracteres. Por ejemplo, si find(lowercase, c) devuelve un valor que no sea -1, entonces c es una minúscula:




   1: def esMinuscula(c):
   2:     return find(string.lowercase, c) != -1

Alternativamente, podemos aprovecharnos del operador in, que determina si un carácter aparece en una cadena:




   1: def esMinuscula(c):
   2:     return c in string.lowercase


Como una alternativa mas, podemos usar el operador de comparacion, aunque esta solucion solo sea practica para el alfabeto ingles:




   1: def esMinuscula(c):
   2:     return 'a' <= c <= 'z'

Si c esta entre a y z, tiene que ser una minuscula.


Como ejercicio, explique que versión de esMinuscula cree que es mas rápida. ¿Puede pensar en otras razones aparte de la velocidad para preferir una sobre la otra?


Otra constante definida en el modulo string puede sorprenderle cuando la imprima:




   1: >>> print string.whitespace


Los caracteres de whitespace mueven el cursor sin imprimir nada. Crean los espacios en blanco entre los caracteres visibles (al menos sobre papel blanco).


La constante string.whitespace contiene todos los caracteres de espacio en blanco, incluidos espacio, tabulador (\t), y salto de línea (\n).


Hay otras funciones útiles en el modulo string, pero este libro no pretende ser un manual de referencia. Por otra parte, la


Referencia de la Biblioteca de Python sí lo es. Junto con un montón mas de documentación, esta disponible en el sitio
web de Python, www.python.org

0