【发布时间】:2010-11-23 05:26:27
【问题描述】:
我最近一直在使用 base-36,但从未对 the usual answer 将 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))
…与转换回来相比…
def from_base36(value):
return int(value, 36)
Python 真的不包括这个特殊的电池吗?
【问题讨论】: