[Python-Dev] PEP 515: Underscores in Numeric Literals
Martin Panter
vadmium+py at gmail.com
Wed Feb 10 20:16:16 EST 2016
More information about the Python-Dev mailing list
Wed Feb 10 20:16:16 EST 2016
- Previous message (by thread): [Python-Dev] Time for a change of random number generator?
- Next message (by thread): [Python-Dev] PEP 515: Underscores in Numeric Literals
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I have occasionally wondered about this missing feature. On 10 February 2016 at 22:20, Georg Brandl <g.brandl at gmx.net> wrote: > Abstract and Rationale > ====================== > > This PEP proposes to extend Python's syntax so that underscores can be used in > integral and floating-point number literals. This should extend complex or imaginary literals like 10_000j for consistency. > Specification > ============= > > * Trailing underscores are not allowed, because they look confusing and don't > contribute much to readability. > * No underscore allowed after a sign in an exponent (``1e-_5``), because > underscores can also not be used after the signs in front of the number > (``-1e5``). > [. . .] > > The production list for integer literals would therefore look like this:: > > integer: decimalinteger | octinteger | hexinteger | bininteger > decimalinteger: nonzerodigit [decimalrest] | "0" [("0" | "_")* "0"] > nonzerodigit: "1"..."9" > decimalrest: (digit | "_")* digit > digit: "0"..."9" > octinteger: "0" ("o" | "O") (octdigit | "_")* octdigit > hexinteger: "0" ("x" | "X") (hexdigit | "_")* hexdigit > bininteger: "0" ("b" | "B") (bindigit | "_")* bindigit > octdigit: "0"..."7" > hexdigit: digit | "a"..."f" | "A"..."F" > bindigit: "0" | "1" > > For floating-point literals:: > > floatnumber: pointfloat | exponentfloat > pointfloat: [intpart] fraction | intpart "." > exponentfloat: (intpart | pointfloat) exponent > intpart: digit (digit | "_")* This allows trailing underscores such as 1_.2, 1.2_, 1.2_e-5. Your bullet point above suggests at least some of these are not desired. > fraction: "." intpart > exponent: ("e" | "E") "_"* ["+" | "-"] digit [decimalrest] This allows underscores in the exponent (1e-5_0), contradicting the other bullet point.
- Previous message (by thread): [Python-Dev] Time for a change of random number generator?
- Next message (by thread): [Python-Dev] PEP 515: Underscores in Numeric Literals
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list