我的功能是這樣的:爲什麼此代碼在某些情況下會引發IndexError?
輸入:
8
輸出:
['000', '001', '010', '011', '100', '101', '110', '111']
所以這是創建一個列表來存儲input_number二進制數從0 這裏開始是我的代碼(正確版本):
import math
input_num = 8
max_bit = math.ceil(math.log(input_num, 2))
list_Bin = [None] * input_num
for i in range(input_num):
extra_d = max_bit - len(bin(i)[2:])
list_Bin[i] = '0'*extra_d + bin(i)[2:]
print(list_Bin)
這段代碼運行良好。但是,如果我改變代碼的一行:
list_Bin = [None] * input_num
到
list_Bin = [] * input_num
這將引發IndexError。
我真的很想知道爲什麼,因爲我多次遇到這個問題。
謝謝你的幫助!但是,我可以使用.append來給出空列表值嗎? –
@MarsLee很高興見到你[再](http://stackoverflow.com/questions/35837794/can-someone-explain-this-recursive-for-me)。 ;)是的,一個空列表是一個*列表*,因此你可以附加一個項目,就像其他列表一樣 – Ian
當然!謝謝你昨天幫助我!我完全明白了!謝謝:) –