将小数转换为任意基数的函数
Function to convert a decimal into that of any base
我正在通过在线学习平台做这道题,并且分配了一些我必须通过的测试用例。 主题是高阶函数。
这里是问题:
编写函数 make_decimal_to_n_ary_converter 接受数字 n,其中 1 < n < 17,以及 returns 将给定十进制数转换为基数 n 的数字转换器.
下面是我的代码(我应该使用一个内部函数,即转换器(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)
以下是我的代码通过的一些测试用例:
decimal_to_binary(213)
11010101
decimal_to_octal(213)
325
decimal_to_hexadecimal(213)
D5
make_decimal_to_n_ary_converter(15)(213)
E3
但是,我的代码在一些私人测试用例中失败了,我收到的反馈是我在 while 循环中的逻辑是错误的。然而,在打印了一些数字之后,我没有发现任何错误。
非常感谢任何帮助,谢谢!
解决了。我的错误是对于基本情况 x ,我不得不 return 一个字符串。
我正在通过在线学习平台做这道题,并且分配了一些我必须通过的测试用例。 主题是高阶函数。
这里是问题:
编写函数 make_decimal_to_n_ary_converter 接受数字 n,其中 1 < n < 17,以及 returns 将给定十进制数转换为基数 n 的数字转换器.
下面是我的代码(我应该使用一个内部函数,即转换器(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)
以下是我的代码通过的一些测试用例:
decimal_to_binary(213)
11010101
decimal_to_octal(213)
325
decimal_to_hexadecimal(213)
D5
make_decimal_to_n_ary_converter(15)(213)
E3
但是,我的代码在一些私人测试用例中失败了,我收到的反馈是我在 while 循环中的逻辑是错误的。然而,在打印了一些数字之后,我没有发现任何错误。 非常感谢任何帮助,谢谢!
解决了。我的错误是对于基本情况 x ,我不得不 return 一个字符串。