我的功能是这样的:为什么此代码在某些情况下会引发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
当然!谢谢你昨天帮助我!我完全明白了!谢谢:) –