2016-09-24 4 views
-7
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 

последняя строка возвращающие почему не else: return True если если заявление возвращается ложь, не будет последним return True перезаписать ??Булевы перезаписываются в python?

+2

Потому что вы можете вернуться только один раз. –

+0

Вы имеете в виду, если он вернет False, последняя строка не будет работать? – Mokadem

+0

Функция возвращает True в цикле для любого соответствия, заканчивая функцию. Если нет, если space_check ... True, то вы нажмете return False вне цикла. Вы можете использовать 'else: return True', но вам не нужно, поскольку вы только добираетесь до этого возврата, если нет, если space_check ... оценивается как True –

ответ

0

Если бы это было

for i in range(1,10): 
    if space_check(board, i): 
     return False 
    else: 
     return True 

затем после первой итерации в цикле для функции вернется. Это не привело бы к ожидаемому поведению. В настоящее время вы проверяете каждое пространство, а не только первое.

+0

Возврат True находится вне цикла, а не в цикле. –

+0

, что точно точка – user3684792

+0

Тогда почему вы положили его в цикле? –

Смежные вопросы