我正在尝试编写一个函数,该函数允许我将数字从某个位置符号转换为另一种选择,从二进制一直到 * hexa *trigesimal 基数。为了做到这一点,我首先需要能够将我的初始数字(以字符串形式给出)转换为十进制数,以便进一步转换。
但是,我的功能似乎有一个错误。
我有的:
def decimal(number, base1):
number_dec = 0
val = '0123456789abcdefghijklmnopqrstuvwxyz'
if base1 != 10:
for digit in number[::-1]:
factor = val.find(digit)
for exp in range(0, len(number)):
number_dec += factor * base1 **exp
else:
number_dec = number
return number_dec
例如,如果我输入:
decimal('4d2', 16)
该函数返回“5187”而不是正确的“1234”。
错误在哪里?