所以我有一个代码,但我不确定它是如何工作的:
def getValue(number):
return int(number,16)
因此,如果我输入 'a25' 作为数字,它应该返回 2597 但我的问题是这个 int 函数是如何工作的,还有其他方法可以做到这一点吗?
所以我有一个代码,但我不确定它是如何工作的:
def getValue(number):
return int(number,16)
因此,如果我输入 'a25' 作为数字,它应该返回 2597 但我的问题是这个 int 函数是如何工作的,还有其他方法可以做到这一点吗?
假设数字是以 16 为基数,则此函数返回数字的int
等价物。
见这个int 方法的定义
它的工作原理是这样的:
import string
allChars = string.digits+string.lowercase #get a list of all the 'characters' which represent digits
def toInt(srep,base):
charMap = dict(zip(allChars,range(len(allChars)))) #map each 'character' to the base10 number
num = 0 #the current total
index = len(srep)-1 #the current exponent
for digit in srep:
num += charMap[digit]*base**index
index -= 1
return num
用于解释“a16”的带有一些调试打印的过程将是:
>>> int('a16',16) #builtin function
2582
>>> toInt('a16',16)
+=10*16^2 -> 2560
+=1*16^1 -> 2576
+=6*16^0 -> 2582
2582