Add support for underscores in numeric literals #3831
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support for underscores in numeric literals, like
123_000
and0b1011_0011_1010
. This is added in Python 3.6 by PEP 515 and is quite useful (especially in the domain of microcontrollers) so I think it's worth adding, even if we don't yet fully support Python 3.5 syntax.To keep the code simple the patch allows through more possibilities than CPython, eg
123__456
is allowed, and so is123_
(they give errors in CPython). I don't see this as a problem.I also added support for formatting using
_
; eg'{:10_}'.format(12345678)
gives'12_345_678'
. I don't know if this is really important to add, but it was short and simple to do just to see if it's worth adding.See #2415 for prior discussion on Python 3.6 support.