考慮蟒蛇下面的代碼: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'?你沒有使用該模塊中的任何功能。 –