472,954 Members | 1,666 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,954 software developers and data experts.

python 2.2 string conversion ?

ken
I've been looking for a solution to a string to long conversion problem that
I've run into
x = 'e10ea210'
print x e10ea210 y=long(x) Traceback (most recent call last):
File "<pyshell#2>", line 1, in ?
y=long(x)
ValueError: invalid literal for long(): e10ea210 x='0xe10ea210'
print x 0xe10ea210 y=long(x) Traceback (most recent call last):
File "<pyshell#5>", line 1, in ?
y=long(x)
ValueError: invalid literal for long(): 0xe10ea210 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 x="0xe10ea210"
y=long(x) Traceback (most recent call last):
File "<pyshell#9>", line 1, in ?
y=long(x)
ValueError: invalid literal for long(): 0xe10ea210


What am I doing wrong?

TIA
Jul 18 '05 #1
4 11109
On Thu, 24 Jul 2003 05:31:17 GMT, "ken" <ke********@earthlink.net> wrote:
I've been looking for a solution to a string to long conversion problem that
I've run into
x = 'e10ea210'
print xe10ea210 y=long(x)Traceback (most recent call last):
File "<pyshell#2>", line 1, in ?
y=long(x)
ValueError: invalid literal for long(): e10ea210 x='0xe10ea210'
print x0xe10ea210 y=long(x)Traceback (most recent call last):
File "<pyshell#5>", line 1, in ?
y=long(x)
ValueError: invalid literal for long(): 0xe10ea210 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 x="0xe10ea210"
y=long(x)Traceback (most recent call last):
File "<pyshell#9>", line 1, in ?
y=long(x)
ValueError: invalid literal for long(): 0xe10ea210
What am I doing wrong?

Need to supply base if converting string that is not base 10
long('123') 123L long('0xe10ea210',16)

3775832592L
Regards,
Bengt Richter
Jul 18 '05 #2
ken wrote:
I've been looking for a solution to a string to long conversion problem that
I've run into
x = 'e10ea210'
print x e10ea210y=long(x)

How about:
y = long(x, 16)

Jul 18 '05 #3
>
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

Jul 18 '05 #4
ken
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" <gh*****@islandtraining.com> wrote in message
news:ma********************************@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

Jul 18 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

18
by: srijit | last post by:
Hello, I would like to know the definition of type safe and whether Python can be considered as a type safe language. Similarly are Java, C# or C++ type safe? Regards, Srijit
10
by: Willem | last post by:
When I run the follwing code using Python 2.3: from time import clock t1 = clock () for i in range (10000): a = int ('bbbbaaaa', 16) t2 = clock () for i in range (10000): a = long ('bbbbaaaa',...
2
by: geskerrett | last post by:
In the '80's, Microsoft had a proprietary binary structure to handle floating point numbers, In a previous thread, Bengt Richter posted some example code in how to convert these to python floats;...
2
by: ajikoe | last post by:
Hi, I tried to follow the example in swig homepage. I found error which I don't understand. I use bcc32, I already include directory where my python.h exist in bcc32.cfg. /* File : example.c...
15
by: Claudio Grondi | last post by:
Let's consider a test source code given at the very end of this posting. The question is if Python allows somehow access to the bytes of the representation of a long integer or integer in...
0
by: Kurt B. Kaiser | last post by:
Patch / Bug Summary ___________________ Patches : 430 open ( -4) / 3447 closed (+17) / 3877 total (+13) Bugs : 922 open ( -7) / 6316 closed (+31) / 7238 total (+24) RFE : 245 open...
1
by: gabriel.becedillas | last post by:
I have a lot of functions returning "const std::string&". Every time I wrap one of those I have to do it like this: class_.def("name", &someclass::bla,...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
2
by: DJRhino | last post by:
Was curious if anyone else was having this same issue or not.... I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...
0
by: Aliciasmith | last post by:
In an age dominated by smartphones, having a mobile app for your business is no longer an option; it's a necessity. Whether you're a startup or an established enterprise, finding the right mobile app...
0
tracyyun
by: tracyyun | last post by:
Hello everyone, I have a question and would like some advice on network connectivity. I have one computer connected to my router via WiFi, but I have two other computers that I want to be able to...
2
by: giovanniandrean | last post by:
The energy model is structured as follows and uses excel sheets to give input data: 1-Utility.py contains all the functions needed to calculate the variables and other minor things (mentions...
3
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be using a very simple database which has Form (clsForm) & Report (clsReport) classes that simply handle making the calling Form invisible until the Form, or all...
1
by: Teri B | last post by:
Hi, I have created a sub-form Roles. In my course form the user selects the roles assigned to the course. 0ne-to-many. One course many roles. Then I created a report based on the Course form and...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 1 Nov 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM) Please note that the UK and Europe revert to winter time on...
3
by: nia12 | last post by:
Hi there, I am very new to Access so apologies if any of this is obvious/not clear. I am creating a data collection tool for health care employees to complete. It consists of a number of...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.