0
我正在通過在線學習平臺來做這個問題,並且有我必須通過的測試用例。 主題是高階函數。把小數轉換成任何基數的函數
這裏是這樣的問題:
寫功能make_decimal_to_n_ary_converter接受的數n,其中1 <Ñ< 17,並返回一個數轉換器,一個給定的十進制數轉換爲基數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)
decimal_to_octal(213)
decimal_to_hexadecimal(213)
D5
make_decimal_to_n_ary_converter(15)(213)
E3
然而,我的代碼失敗一些私人的測試用例,而我收到的反饋是,我在while循環的邏輯是錯誤的。但是,打印一些數字後,我沒有看到任何錯誤。 希望有任何幫助,謝謝!