A funnily inconsistent behavior of int and float
Colin J. Williams
fn681 at ncf.ca
Mon Apr 7 19:31:36 EDT 2008
Terry Reedy wrote:
> "Mark Dickinson" <dickinsm at gmail.com> wrote in message
> news:1d11875a-470a-489f-910a-b420a145eb61 at a1g2000hsb.googlegroups.com...
> | On Apr 7, 6:43 am, "Colin J. Williams" <fn... at ncf.ca> wrote:
> | > This is good but the documentation for
> | > 3.0 is missing the syntax documentation
> | > from 2.5
> |
> | Is
> |
> |
> http://docs.python.org/dev/3.0/reference/lexical_analysis.html#integer-literals
> |
> | the documentation that you're looking for?
Yes, thanks. I missed it.
Colin W.
> |
> | But it seems to me that Lie's original point isn't really
> | about integer *literals* anyway---it's about the behaviour
> | of the built-in int() function when applied to a string. So
> |
> | http://docs.python.org/dev/3.0/library/functions.html#int
> |
> | is probably the appropriate place in the documentation. And
> | I agree that it could be made clearer exactly what strings are
> | acceptable here.
>
> Agreed.
>
> It says "If radix is zero, the interpretation is the same as for integer
> literals."
> But integer literals are unsigned. Is radix 0 any different from the
> default of radix 10?
>
> It also says "If the argument is a string, it must contain a possibly
> signed number of arbitrary size, possibly embedded in whitespace." But
> only integers, not 'numbers' as some would understand that, are accepted.
>
> My suggestions:
> 1. Change signature to: int([number | string[, radix]).
> This makes it clear that radix can only follow a string without having to
> say so in the text.
>
> 2. Replace text with:
> Convert a number or string to an integer. If no arguments are given,
> return 0. If a number is given, return number.__int__(). Conversion of
> floating point numbers to integers truncates towards zero. A string must
> be a base-radix integer literal optionally preceded by '+' or '-' (with no
> space in between) and optionally surrounded by whitespace. A base-n
> literal consists of the digits 0 to n-1, with 'a' to 'z' (or 'A' to 'Z')
> having values 10 to 35. The default radix is 10. The allowed values are 0
> and 2-36, with 0 the same as 10.
>
> If 0 is not the same as 10, the last would have to be changed, but I could
> not detect any difference in a quick test.
>
> After looking at any comments here, I will consider submitting these to the
> tracker.
>
> Terry Jan Reedy
>
>
>
More information about the Python-list
mailing list