【发布时间】:2017-02-02 07:40:59
【问题描述】:
def space_check(board, position):
return board[position] == ' '
def full_board_check(board):
for i in range(1,10):
if space_check(board, i):
return False
return True
最后一行是 return True
为什么不else: return True
如果if语句返回false,最后的return True不会覆盖吗??
【问题讨论】:
-
因为只能返回一次。
-
你的意思是如果它返回 False 最后一行将不起作用?
-
该函数在任何匹配的循环中返回 True,结束该函数。如果没有,如果 space_check... 为 True,则在循环外点击 return False。您可以使用
else: return True,但您不必这样做,因为如果 space_check... 评估为 True,则只有在否时才能达到该回报 -
请不要粘贴代码截图。花时间正确复制、粘贴和格式化此站点的代码。
-
您还可以将代码简化为
return any(check_space(board, i) for i in range(1, 10)),这将在任何匹配时返回 True 或在没有匹配时返回 False,就像您自己的代码一样。 docs.python.org/2/library/functions.html#any
标签: python python-3.x