Binary 函数将十进制数转换为任意基的十进制数

Binary 函数将十进制数转换为任意基的十进制数,binary,hex,converter,higher-order-functions,Binary,Hex,Converter,Higher Order Functions,我通过一个在线学习平台来做这个问题,并且分配了一些我必须通过的测试用例主题是高阶函数。 问题是: 编写一个函数make_decimal_to_n ary_converter,它接受一个数字n,其中1

我通过一个在线学习平台来做这个问题,并且分配了一些我必须通过的测试用例主题是高阶函数。

问题是:

编写一个函数make_decimal_to_n ary_converter,它接受一个数字n,其中1

下面是我的代码(我应该使用一个内部函数,即转换器(x))

def make_decimal_to_n_ari_转换器(n):
def转换器(x):
如果x==0或x==1:
返回x
i=x
b=(‘A’、‘b’、‘C’、‘D’、‘E’、‘F’)
result=“”
当i>0时:
a=i%n#3

如果a解决了它。我的错误是,对于基本情况x,我必须返回一个字符串

    def make_decimal_to_n_ary_converter(n):
    def converter(x):
        if x==0 or x==1:   
            return x
        i=x
        b=('A','B','C','D','E','F')
        result = ""
        while i>0:
            a=i%n          #3
            if a<10:
                result = str(i%n)+result
            else:
                d=a-10
                result = b[d] + result
            i=i//n

        return result
    return converter

#Lines below are not to be changed, part of qn
decimal_to_binary = make_decimal_to_n_ary_converter(2)
decimal_to_octal = make_decimal_to_n_ary_converter(8)
decimal_to_hexadecimal = make_decimal_to_n_ary_converter(16)