¿Cómo usar los separadores de dígitos para los literales enteros de Python?

¿Hay alguna forma de agrupar dígitos en un código de Python para boost la legibilidad del código? He intentado ' y _ que son separadores de dígitos de otros idiomas, pero no sirven.

Un operador extraño que concatene su lado izquierdo con su lado derecho también podría funcionar.

Actualización unos años más tarde: Python 3.6 ahora es compatible con PEP515 , por lo que puede usar _ para mejorar la legibilidad de los literales enteros y flotantes.

 Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 1_1000 11000 >>> 

Para referencia histórica, puedes mirar el análisis léxico para definiciones estrictas python2.7 , python3.5 …

Para python3.6.0a2 y anteriores, debería aparecer un mensaje de error similar a:

 Python 3.6.0a2 (v3.6.0a2:378893423552, Jun 13 2016, 14:44:21) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 1_000 File "", line 1 1_000 ^ SyntaxError: invalid syntax >>> amount = 10_000_000.0 File "", line 1 amount = 10_000_000.0 ^ SyntaxError: invalid syntax 

Actualmente no hay un separador de miles en Python, pero puede usar el módulo de locale para convertir la cadena con dichos separadores en un int:

 import locale locale.setlocale(locale.LC_ALL, '') locale.atoi("1,000,000") 

No existe tal función en Python, pero se propuso integrarla en el futuro.

Puedes ver la propuesta en el PEP515 .

Lo más cercano que he visto en python es 12 * 1000 * 1000 , lo cual no es ideal, pero puede ser útil si se necesita 12000000 . Sin embargo, tenga en cuenta que, mientras que en C, son equivalentes, ya que en el momento de la comstackción convierte ambos a la misma cosa, Python puede no compartir esta optimización.