Noob questions about Python

MRAB google at mrabarnett.plus.com
Thu Oct 18 19:44:38 EDT 2007


On Oct 18, 7:05 am, Michele Simionato <michele.simion... at gmail.com>
wrote:
> On Oct 17, 5:58 pm, Ixiaus <parnel... at comcast.net> wrote:
>
> > def bin2dec(val):
> >     li = list(val)
> >     li.reverse()
> >     res = [int(li[x])*2**x for x in range(len(li))]
> >     print sum(res)
>
> > It basically does the same thing int(string, 2) does.
>
> > Thank you for the responses!
>
> BTW, here is the reverse function dec2bin, so that you can
> bang your head on it for a while ;)
>
It returns '' when number == 0, so you need to test for that case:

> def baseN(number, N=2):
>     """
>     >>> baseN(9, 2)
>     '1001'
>     """
>     assert 2 <= N <= 10
>     assert isinstance(number, int) and number >= 0
    if number == 0:
        return "0"
>     b = []
>     while number:
>         b.append(str(number % N))
>         number /= N
>     return ''.join(reversed(b))
>
>        Michele Simionato





More information about the Python-list mailing list