好吧,这完全让我感到困惑,我正在打印一个字符串及其返回的数字。 我不明白它是如何从字符串中返回数字的。
这是代码片段。
string = "String"
print int(string[0:min(5,len(string))],36)
该片段的输出是
48417935
我的 friend 告诉我这与计算机从字符串生成数字有关,但我很困惑。
有人可以解释一下为什么会这样吗?
请您参考如下方法:
你正在吃这片
>>> string[0:min(5,len(string))]
'Strin'
并将其转换为 base36 数字(类似于 hexadecimal 但使用全部 26 个字母)
>>> int('Strin', 36)
48417935
另一种得出该数字的方法是:
>>> ["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".index(x) for x in 'STRIN']
[28, 29, 27, 18, 23]
>>> 28*36**4 + 29*36**3 + 27*36**2 + 18*36**1 + 23*36**0
48417935
