Python中对base-36的支持不均衡?
我最近一直在使用base-36,但从未对将int转换为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 &
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'