Peter Otten wrote: > Mike Moum wrote: > > > s.atoi('4',3) should result in 11 > > > > s.atoi('13',4) should result in 31 > > > > s.atoi('12',4) should result in 30 > > > > s.atoi('8',4) is legitimate, but it generates an error. > > > > Is this a bug, or am I missing something obvious? > > You and atoi() seem to disagree about the direction of the conversion, and > atoi() wins :-). It converts a string representation of a number into the > corresponding integer. The second parameter specifies in what base this > string is given. > You seem to want something like > > import string > > def itoa(n, base): > assert 2 <= base <= 16
Why have the restriction base <= 16? int() allows up to 36. All you need to do is BASE36_DIGITS = string.digits + string.lowercase and change > digits.append(string.hexdigits[m]) to > digits.append(BASE36_DIGITS[m]) -- http://mail.python.org/mailman/listinfo/python-list