# Probably a stupid newbie question....i got to ask

David Bolen db3l at fitlinxx.com
Thu Aug 9 04:36:44 CEST 2001

```fett at tradersdata.com writes:

> How do you use string.atoi to convert a variable integer to a string?

You don't, because string.atoi does the reverse - converts a string
into an integer.  (The "atoi" is for alpha/ascii to integer)

The function documentation spells this out:

>>> print string.atoi.__doc__
atoi(s [,base]) -> int

Return the integer represented by the string s in the given
base, which defaults to 10.  The string s must consist of one
or more digits, possibly preceded by a sign.  If base is 0, it
is chosen from the leading characters of s, 0 for octal, 0x or
0X for hexadecimal.  If base is 16, a preceding 0x or 0X is
accepted.

Thus, for example:

>>> string.atoi('10')
10
>>> string.atoi('152')
152
>>> string.atoi('-5')
-5
>>> string.atoi('0xA',16)
10

and it only works on integers (use string.atof for float):

>>> string.atoi("-152.0")
Traceback (innermost last):
File "<stdin>", line 1, in ?
ValueError: invalid literal for atoi(): -152.0

If you want to go the other way (convert an integer into a string),
you have a few alternatives:

* Use str(###) - this is the simplest way to get a printable string
representation of any object.

>>> str(10)
'10'

* Use a format string.  String formatting can use %s to perform
the same operation as str(), or formats such as %d for integers or
%f for floating point.

>>> '%s' % 10
'10'
>>> '%d' % 10
'10'
>>> '%5d' % 10
'   10'
>>> '%5.2f' % 10
'10.00'

You can also use %x/%X (hex) or %o (octal) in format strings to
perform a base conversion.

>>> '%o' % 10
'12'
>>> '%x' % 10
'a'
>>> '%X' % 10
'A'

--
-- David
--
/-----------------------------------------------------------------------\
\               David Bolen            \   E-mail: db3l at fitlinxx.com  /
|             FitLinxx, Inc.            \  Phone: (203) 708-5192    |
/  860 Canal Street, Stamford, CT  06902   \  Fax: (203) 316-5150     \
\-----------------------------------------------------------------------/

```