Я строю минимаксную функцию и мне нужно сделать несколько проверок для каждой итерации. Я хочу, чтобы итерации были настолько эффективными, насколько это возможно, чтобы иметь возможность увеличить глубину поиска, и поэтому я хочу знать, как Python if-инструкции работает для циклов. Позвольте мне привести вам упрощенный пример:
# Example 1
def test(x_start, y_start):
for xdir, ydir in [[1, -1], [1, 1], [-1, 1], [-1, -1]]:
x, y = x_start, y_start
x += xdir
y += ydir
if not is_on_board(x, y) and board[x][y].type == 'full':
continue
# Example 2
def test(x_start, y_start):
for xdir, ydir in [[1, -1], [1, 1], [-1, 1], [-1, -1]]:
x, y = x_start, y_start
x += xdir
y += ydir
if not is_on_board(x, y):
if not board[x][y].type == 'full':
continue
Является ли это более эффективным, если перейти к примеру 2, поскольку в некоторых случаях он пропустит первый оператор if, основанный на том, что позиция не на доске, и не делает 'Нужно ли выполнять дополнительную проверку типа платы?
В моем реальном коде есть больше операторов and с проверками функций и переменных, которые могут быть относительно длительными. Поэтому я хочу знать, эффективнее ли разбивать операторы and на несколько операторов if, как в примере 2, или это не имеет значения? Вообще говоря.