【发布时间】:2018-04-28 20:00:39
【问题描述】:
如果 item>=32,我的代码似乎没有跳出 for 循环。我已经用调试器进行了检查,当值为 32 时,won 确实更改为“True”,但循环不会中断。
def check_if_won (grid):
"""return True if a value>=32 is found in the grid; otherwise False"""
for row in grid:
for item in row:
if item>=32:
won=True
break
else:
won=False
return won
if __name__ == "__main__":
grid1 = [[4,2,32,2],[2,8,16,8],[16,32,8,4],[4,8,4,2]]
print(check_if_won(grid2))
如果运行程序返回 False
【问题讨论】:
-
你正在打破内循环,但不是外循环。无论如何——为什么要中断?为什么不直接返回?
-
因为如果不是True就需要返回False?不完全确定这个逻辑是否有意义,我只是错过了简单的方法吗?
-
一个函数可以有多个返回语句。一旦你发现你应该返回 true ——返回 true 而不是跳出循环并稍后返回 true。
-
知道了,谢谢。
标签: python-3.x for-loop break