2011-02-09 14 views
5

Esto podría ser una pregunta estúpida pero no entiendo cuál es la diferencia entre string.uppercase y string.ascii_uppercase en el módulo de cadena. Al imprimir el docstring de ambas funciones se imprime lo mismo. Incluso la salida de print string.uppercase y print string.ascii_uppercase es la misma.Python: string.uppercase vs. string.ascii_uppercase

Gracias.

+0

Estoy aprendiendo Python en este momento. Encontré el módulo de cadena mientras leía la documentación. – Dharmit

Respuesta

16

Ver: http://docs.python.org/library/string.html

string.ascii_uppercase:

  • Las letras mayúsculas 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. Este valor no depende de la configuración regional y no cambiará.

string.uppercase:

  • Una cadena que contiene todos los caracteres que se consideran letras mayúsculas. En la mayoría de los sistemas, esta es la cadena 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. El valor específico depende de la configuración regional y se actualizará cuando se llame a locale.setlocale().
8

Tenga en cuenta que en Python 3.x string.uppercase y también string.lowercase y string.letters se han vaporizado. No se consideró buena práctica tener 'constantes' globales que variaban cuando cambiabas la configuración regional. (Ver http://docs.python.org/py3k/whatsnew/3.0.html)

Así que lo mejor para cualquier código nuevo es probablemente pretender que tampoco existen en Python 2.x. De esa manera usted no almacenar hasta problemas si alguna vez es necesario para migrar a Python 3.x

-1

Para comprobar si hay caracteres en mayúsculas, en cualquier idioma (es decir, no su propia localidad), utilice [:upper:] y regex.UNICODE con el módulo regex .