私は以下のコードを書いていましたが、最初のループが終了してFalseを返さない場合、フローは2番目のwhileループに従います。しかし、フローは2番目のwhileループをスキップし、単にTrueを返します。何故ですか?この問題を解決するにはどうしたらいいですか?最初のwhileループから2番目のwhileループに移動した後にフローを作成しますか?Pythonで2つのwhileループが次々に(他のループの内側ではなく)連続して動作しないのはなぜですか?
square = [[1,2,3,4],[4,3,1,4],[3,1,2,4],[2,4,4,3]]
# this is an auxiliary function
def getSum(lis):
sum = 0
for e in lis:
sum = sum + e
return sum
# here is where the problem is
def check_game(square):
standardSum = getSum(range(1, len(square)+1))
while square: #this is the first while loop
row = square.pop()
print row, 'row', 'sum of row=', getSum(row)
if standardSum != getSum(row):
return False
m = 0
while m < len(square): # the second while loop, which the flow skips
n = 0
col = []
while n < len(square):
col.append(square[n][m])
n = n + 1
print col, 'column'
if standardSum != getSum(col):
print standardSum, ' and sum of col =', getSum(col)
return False
m = m + 1
return True
インデントをチェックし、ここであなたの実際のコードは –
1 @AramKocharyanに一致します。どちらのwhileループのcheck_gameのfuncitonの内側に実際にあります。 –
はい、私は間違って貼り付けますが、私の.pyファイルには正しい字下げがあります。ありがとう、アラム。 – craftApprentice