4

我最近一直在使用 base-36,并且从未对将 int 转换为 base-36 字符串的通常答案感到满意。看起来有点不平衡……</p>

def to_base36(value):
    if not isinstance(value, int):
        raise TypeError("expected int, got %s: %r" % (value.__class__.__name__, value))

    if value == 0:
        return "0"

    if value < 0:
        sign = "-"
        value = -value
    else:
        sign = ""

    result = []

    while value:
        value, mod = divmod(value, 36)
        result.append("0123456789abcdefghijklmnopqrstuvwxyz"[mod])

    return sign + "".join(reversed(result))

…与转换回来相比…</p>

def from_base36(value):
    return int(value, 36)

Python 真的不包括这个特殊的电池吗?

4

3 回答 3

8

你试过包吗?

>>> import basin
>>> basin.encode("0123456789abcdefghijklmnopqrstuvwxyz", 100)
'2s'

它不包括电池,但pypi存储库就像一个便利店,可以毫不费力地拿起电池。

于 2010-11-23T05:41:59.780 回答
4

正确的。不是每家商店都有NJ电池。

于 2010-11-23T05:29:05.630 回答
1

继续类比,基本包装中可能不包含该尺寸的电池,但在网上购买插头兼容的配件很容易:

http://code.activestate.com/recipes/365468-number-to-string-in-arbitrary-base/

于 2010-11-23T05:41:44.613 回答