On Sat, Feb 6, 2010 at 3:00 AM, kevin <[email protected]> wrote:
> can you pl. add this to utils.py as there is no function to decode base36
> created by to36
>
> def from36(q):
> letters="0123456789abcdefghijklmnopqrstuvwxyz"
> i = 0
> for pos, digit in enumerate(q[-1::-1]):
> i += letters.find(digit) * pow(36, pos)
> return i
>
I was thinking of adding a more generalized version that I wrote.
class BaseCode:
def __init__(self, letters):
self.letters = letters
self.iletters = dict((c, i) for i, c in enumerate(letters))
def encode(self, n):
k = len(self.letters)
converted = []
while n != 0:
n, r = divmod(n, k)
converted.insert(0, self.letters[r])
return "".join(converted) or '0'
def decode(self, s):
n = 0
for c in s:
n = n*36 + self.iletters[c]
return n
base36 = "0123456789abcdefghijklmnopqrstuvwxyz"
to36 = base36.encode
from36 = base36.decode
Anand
--
You received this message because you are subscribed to the Google Groups
"web.py" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/webpy?hl=en.