我正在使用我迄今为止在课堂上学到的概念进行练习3连续练习:while循环,布尔值和if语句。
出于某种原因,我的函数似乎没有返回False,即使我给出了一个应该的参数。相反,我得到一个'执行命令,请等待结果'消息,之后没有任何消息。最初我认为它在某个地方被无限循环捕获,但我认为不应该因为我对所有变量进行了限制,并在所有while循环的末尾添加了+ = 1。
非常感谢任何帮助!
以下是我的代码片段:
def is_winner(grid):
x = 0
y = 0
while x <=3:
x +=1
while y <= 4:
if grid[x][y] == grid[x + 1][y] ==grid[x + 2][y]:
y += 1
return True
while x <= 3:
x +=1
while y <= 3:
if grid[x][y] == grid[x + 1][y - 1] == grid[x + 2][y - 2]:
y +=1
return True
else:
return False
答案 0 :(得分:3)
如果y
语句为if
,您只需递增True
。如果它们永远不存在,那么你进入了一个无限循环:
while x <=3:
while y <= 4:
x +=1
if grid[x][y] == grid[x + 1][y] ==grid[x + 2][y]]:
y += 1
您的内部while
循环永远不会完成,因此您的外部while
循环永远不会被测试。
将其更改为:
while x <=3 and y <= 4:
x +=1
if grid[x][y] == grid[x + 1][y] ==grid[x + 2][y]]:
y += 1