2016-01-14 115 views
-2

我已經問過關於這個問題的類似問題,但僅限於從0到15的數字列表。我想過如何將數字從0轉換爲15以上。這裏是我寫的到目前爲止將數字從基數10轉換爲基數4

def base_convert(i, b): 
    result = [] 
    for i in range(20): 
      while i > 0: 
       result.insert(0, i % b) 
       i = i // b 
      return result 

print(base_convert(i,4)) 

但我得到錯誤,說'名字'我沒有定義。我在這裏錯過了什麼嗎?或者,也許我寫了一個錯誤的代碼。謝謝你的答案。

+4

'打印(base_convert(I,4))'你還沒有定義'i'當你調用該函數。 –

+0

提示:請記住基數4是八進制的1/2,所以027 = 2 * 8 + 7 * 0 – rbp

+0

在解決問題時做了答案嗎?如果有幫助,請接受它來幫助那些有類似問題的人。如果沒有幫助,請讓我知道,這樣我就可以刪除它,以免人們浪費時間看着它。 – innoSPG

回答

1

三個問題:

  1. 您可以通過摩根
  2. i作爲mentionned沒有,當你調用函數定義i是輸入ARG所以你不應該使用它之前在功能覆蓋它。您不需要for循環。

它應該看起來像與測試以下爲9

def base_convert(i, b): 
    result = [] 
    while i > 0: 
      result.insert(0, i % b) 
      i = i // b 
    return result 

print(base_convert(9,4)