Python中对base-36的支持不均衡?

Python中对base-36的支持不均衡?,python,base36,Python,Base36,我最近一直在使用base-36,但从未对将int转换为base-36字符串感到满意。看起来有点不平衡 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 &

我最近一直在使用base-36,但从未对将int转换为base-36字符串感到满意。看起来有点不平衡

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))

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

正确。并非每家商店都有电池。

继续类推,这种尺寸的电池可能不包括在基本包装中,但在线购买与插头兼容的配件非常容易:

你试过这个软件包吗

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

它不包括电池,但是
pypi
存储库就像一个便利店,可以用最少的麻烦来挑选电池。

+1,base 36是相当不寻常的,因此将其包含在标准库中只会增加bloat@Rafe-对我来说,这没什么根据,但是Python包含了对从任意基转换而不是转换为任意基的支持。Rafe:然而,从
int()
中删除它显然并不罕见,也不是“膨胀”那么糟糕!标准C也有同样的不对称性。。。。这可能是一个很大的线索,解释了为什么Python也有这种不对称性——因为许多原始字符串格式可能取决于底层的C库
>>> import basin
>>> basin.encode("0123456789abcdefghijklmnopqrstuvwxyz", 100)
'2s'