Note that the integer and exponent parts are always interpreted using radix 10. For example,$_{077e010}$ is legal, and denotes the same number as 77e10 . The allowed range of floating point literals is implementation-dependent. As in integer literals, underscores are supported for digit grouping. Some examples of floating point literals: Floating point literals are described by the following lexical definitions: floatnumber ::= pointfloat | exponentfloat pointfloat ::= [ digitpart ] fraction | digitpart $_{exponentfloat}$::= ( digitpart | pointfloat ) exponent digitpart ::= digit (["_"] digit )* fraction ::= "." digitpart exponent ::= ("e" | "E") ["+" | "-"] digitpart The Python Language Reference, Release 3.9.5 2.4.6 Floating point literals 3.14 10. .001 1e100 3.14e-10 0e0 3.14_15_93 Changed in version 3.6: Underscores are now allowed for grouping purposes in literals. Imaginary literals are described by the following lexical definitions: imagnumber ::= ( floatnumber | digitpart ) ("j" | "J") An imaginary literal yields a complex number with a real part of 0.0. Complex numbers are represented as a pair of floating point numbers and have the same restrictions on their range. To create a complex number with a nonzero real part, add a floating point number to it, e.g.,$_{(3+4j)}$ . Some examples of imaginary literals: 2.4.7 Imaginary literals 3.14 j 10. j 10 j .001 j 1e100j3.14e-10 j 3.14_15_93 j The following tokens serve as delimiters in the grammar: The following tokens are operators: 2.5 Operators 2.6 Delimiters The period can also occur in floating-point and imaginary literals. A sequence of three periods has a special meaning as an ellipsis literal. The second half of the list, the augmented assignment operators, serve lexically as delimiters, but also perform an operation. 15 2.5. Operators + << < - >> > * & <= ** | >= / ^ == // ~ != % := @ ( , += &= ) : -= |= [ . *= ^= ] ; /= >>= -> @= { } @ = //= %= <<=**=