我最近一直在使用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))
Run Code Online (Sandbox Code Playgroud)
...与转换回来相比......
def from_base36(value):
return int(value, 36)
Run Code Online (Sandbox Code Playgroud)
Python真的没有包含这个特定的电池吗?
你试过盆包装吗?
>>> import basin
>>> basin.encode("0123456789abcdefghijklmnopqrstuvwxyz", 100)
'2s'
Run Code Online (Sandbox Code Playgroud)
这不是电池,但pypi存储库就像一个便利店,可以轻松拿起电池.