tipos teclado separador raw_input numeros miles decimales datos concatenar comando capturar python literals

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



separador de miles en python (4)

Actualización unos años más tarde: Python 3.6 ahora es compatible con PEP515 , por lo que puede usar _ para la mejora de legibilidad literal flotante y entera.

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, puede mirar el análisis léxico para definiciones estrictas python2.7 , python3.5 ...

Para python3.6.0a2 y anteriores, debería recibir 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 "<stdin>", line 1 1_000 ^ SyntaxError: invalid syntax >>> amount = 10_000_000.0 File "<stdin>", line 1 amount = 10_000_000.0 ^ SyntaxError: invalid syntax

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

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


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

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


Lo más parecido 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, porque en el momento de la compilación convierte ambos a la misma cosa, es posible que Python no comparta esta optimización.


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

Puedes ver la propuesta en el PEP515 .