考虑蟒蛇下面的代码:Python列表尺寸大小错误
def main():
n = input()
s = input()
coins = [ 0 ]*n
dp = [ 0 ]*(s+1)
print coins
print dp
for i in range(n) :
coins[ i ] = input()
dp[ 0 ]=0
dp[ 1 ]=1
for i in range(2, s+1) :
min_val = 999999
for j in range(0, n) :
if i-coins[ j ] > 0 :
if dp[ i-coins[ j ] ] + 1 < min_val :
min_val = dp[ i-coins[ j ] ] + 1
print coins
print dp
print coins[ s ]
if __name__ == "__main__" :
main()
当我编译并运行这个程序,我得到以下运行时错误:
File "test.py", line 33, in <module>
main();
File "test.py", line 30 in main
if dp[ i-coins[ j ] ] + 1 < min_val :
IndexError: list index out of range
这有什么错呢?
输入:
5 10
1 3 5 7 9
你不*需要在Python中使用';'分号。它们只会增加噪音。 –
鉴于您已经在上面的行中使用了'coins [j]'这个表达式,那不可能是。尝试打印该表达式的值。 –
你为什么要导入'array'?你没有使用该模块中的任何功能。 –