¿Cómo utilizar separadores de dígitos para literales enteros de Python?
¿Hay alguna forma de agrupar dígitos en un código Python para aumentar la legibilidad del código? Lo intenté '
y _
cuáles son separadores de dígitos de algunos otros idiomas, pero fue en vano.
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 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
>>>
Como referencia histórica, puede consultar el análisis léxico para definiciones estrictas python2.7 , python3.5 ...
Para python3.6.0a2 y versiones anteriores, debería aparecer un mensaje de error similar al:
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
Actualmente no existe un separador de miles en Python, pero puedes usar locale
el módulo para convertir cadenas con dichos separadores a 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 .