python 2.2 string conversion ?

ken kericks272 at earthlink.net
Thu Jul 24 11:06:29 EDT 2003


It wasn't clear to me when I read the docs - I inferred that the long()
built-in only took 1 parameter.

Thanks everybody.

"Gary Herron" <gherron at islandtraining.com> wrote in message
news:mailman.1059027097.828.python-list at python.org...
> >
> > >>> x="e10ea210"
> > >>> y=long(x)
> >
> > Traceback (most recent call last):
> >   File "<pyshell#7>", line 1, in ?
> >     y=long(x)
> > ValueError: invalid literal for long(): e10ea210
>
> > What am I doing wrong?
>
> You didn't specify what you are trying to do here, but I'll make a
> wild *guess* that the string in x is a hexadecimal (i.e., base 16)
> value.  However, Python can't go around making such a guess, so you
> have to explicitly specify your radix (radix being another term for
> base) like this:
>
> >>> print long("e10ea210",16)
> 3775832592
>
> or tell it to infer the radix from a '0x' prefix:
>
> >>> print long("0xe10ea210",0)
> 3775832592
>
> Here are the relevant portions of the manual:
>
> long(x[, radix])
>
>   Convert a string or number to a long integer. If the argument is a
>   string, it must contain a possibly signed number of arbitrary size,
>   possibly embedded in whitespace; this behaves identical to
>   string.atol(x). The radix argument is interpreted in the same way as
>   for int(), and may only be given when x is a string. Otherwise, the
>   argument may be a plain or long integer or a floating point number,
>   and a long integer with the same value is returned. Conversion of
>   floating point numbers to integers truncates (towards zero).
>
>
> int(x[, radix])
>
>   Convert a string or number to a plain integer. If the argument is a
>   string, it must contain a possibly signed decimal number
>   representable as a Python integer, possibly embedded in whitespace;
>   this behaves identical to string.atoi(x[, radix]). The radix
>   parameter gives the base for the conversion and may be any integer
>   in the range [2, 36], or zero. If radix is zero, the proper radix is
>   guessed based on the contents of string; the interpretation is the
>   same as for integer literals. If radix is specified and x is not a
>   string, TypeError is raised. Otherwise, the argument may be a plain
>   or long integer or a floating point number. Conversion of floating
>   point numbers to integers truncates (towards zero). If the argument
>   is outside the integer range a long object will be returned instead.
>
>
> Gary Herron
>
>
>
>






More information about the Python-list mailing list