Underscores in Python numbers
bonono at gmail.com
bonono at gmail.com
Sun Nov 20 11:31:20 EST 2005
D H wrote:
> Steve Holden wrote:
> > David M. Cooke wrote:
> >> One example I can think of is a large number of float constants used
> >> for some math routine. In that case they usually be a full 16 or 17
> >> digits. It'd be handy in that case to split into smaller groups to
> >> make it easier to match with tables where these constants may come
> >> from. Ex:
> >>
> >> def sinxx(x):
> >> "computes sin x/x for 0 <= x <= pi/2 to 2e-9"
> >> a2 = -0.16666 66664
> >> a4 = 0.00833 33315
> >> a6 = -0.00019 84090
> >> a8 = 0.00000 27526
> >> a10= -0.00000 00239
> >> x2 = x**2
> >> return 1. + x2*(a2 + x2*(a4 + x2*(a6 + x2*(a8 + x2*a10))))
> >>
> >> (or least that's what I like to write). Now, if I were going to higher
> >> precision, I'd have more digits of course.
> >>
> > Right, this is clearly such a frequent use case it's worth changing the
> > compiler for.
>
> Yes it is.
> In that one example he used digit grouping 5 more times than I've
> used lambda in my life. Remember people use python as a data format as
> well (see for example JSON).
> It's a simple harmless change to the parser: ignore underscores or
> spaces in numeric literals. As others have mentioned, Ruby supports
> this already, as do Ada, Perl, ML variants, VHDL, boo, nemerle, and others.
But that requirement can be served easily with something like this :
a2=my_decimal("-0.16666 66664")
More information about the Python-list
mailing list