2015-08-15 129 views
0

這裏是我的一個連接4方案的一部分代碼:爲什麼我在代碼中獲得索引超出範圍?

def place_piece(n,column): 

    col=int(column) 
    boardlist=[['.'*42]] 
    for l in range(7): 
     if boardlist[col+42-7l]=='.': 
      if n%2==0: 
       piece=X 
      else: 
       piece=O 
      boardlist[col+7(6-l)]=piece 
      break 
    return boardlist 

print(place_piece(1,3)) 

當運行它,第5行if boardlist[col+42-7l]=='.':具有索引超出範圍的錯誤。爲什麼?我怎麼能解決這個問題?

+1

爲什麼要將int轉換爲int?那不可能是你的代碼,因爲在你嘗試索引之前很久就會出錯 –

+0

boardlist應該是什麼?因爲我猜測包含一個單元素列表的單元素列表包含一個包含42個句號的字符串是不是... – jonrsharpe

+0

等等然後我該如何製作一個42元素列表? @jonrsharpe –

回答

1

索引超出範圍錯誤意味着您所指數組的索引不存在。這是你如何申報boardlist

boardlist=[['.'*42]] 

在這種情況下,boardlist本身只包含一個元素,這恰好是另一個數組。因此,唯一可行的指數是boardlist[0]。根據您發佈的代碼,我建議將其更改爲:

boardlist=['.']*42 
+0

謝謝! @DizzyCode –

+0

沒問題!如果此答案有幫助,請點擊複選標記以接受它。 – deezy

0

您的col+42-7l超過len(boardlist) - 1在您的循環中的某個點。就如此容易。

相關問題