I have occasionally wondered about this missing feature. On 10 February 2016 at 22:20, Georg Brandl <g.bra...@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. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com