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 .