私のコードは次の行に無限ループに陥っているのはなぜ私にはわからない:コードは無限ループにあり、
while i <= len(mylist):
if mylist[i][j] == number:
私は、コードを強化しましたが、まだ修正する方法がわかりませんそれ。次のように私が解決しようとしている問題は、次のとおりです。
は、入力として、n×nの 数独パズルの解を表すリストの広場一覧 を取り、入力された場合はTrueブール を返す手順、check_sudoku、 の定義します有効な sudoku squareを返し、ブール値False を返します。
有効な数独正方形満たすこれら 二つの特性:
正方形の各列は 整数のそれぞれ1からN回だけを含んでいます。
各行には、1からnの整数のそれぞれが正確に1回ずつ含まれています( )。
入力が正方形で、少なくともの行と列が含まれていると仮定できます。
私が書いた以下のコードは、列ではなく行を確認する必要があります。それを修正する方法や私が間違っていたことについてのアドバイスは大いにありがたく思うので、私は理解して、間違いをもう一度はしません。
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