我的代碼粘貼在以下幾行無限循環:代碼是無限循環,我不知道爲什麼
while i <= len(mylist):
if mylist[i][j] == number:
我已經通過代碼加強,但仍然不知道如何解決它。我試圖解決的問題如下:
定義的過程,check_sudoku, 是作爲輸入代表n×n的 數獨題解表的方名單 並返回布爾 真,如果輸入的是一個有效的 數獨正方形,否則返回布爾錯誤 。
有效數獨正方形滿足這些 兩個屬性:
正方形的每一列包含每個從1整數的 到n正好一次。
正方形的每一行包含從1到n的整個數字的每個 恰好一次。
您可能會認爲輸入是正方形,並且至少包含一行和一列的 。
我寫的下面的代碼應該只檢查行而不是列。任何有關如何解決這個問題以及我做錯了什麼的建議都將不勝感激,所以我會理解並不會再犯這個錯誤。
def check_sudoku(mylist):
i = 0
j = 0
number = len(mylist)
while i <= len(mylist):
if mylist[i][j] == number:
number = number - 1
j = 0
if number == 0:
i = i + 1
number = len(mylist)
else:
j = j + 1
if number not in list:
break
return False
return True
check_sudoku([[1, 2, 3, 4],
[1, 3, 1, 4],
[3, 1, 2, 3],
[4, 4, 4, 4]])
你試過調試器嗎? –
如果'number == 0',則增加'i',否則不增加。這就是你的問題所在 – inspectorG4dget
@AlessandroSuglia我正在使用PyCharm。 – johnnewbie25