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