gpt4 book ai didi

python - 使用 if 语句的最有效的 Python 循环

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:36 24 4
gpt4 key购买 nike

我正在构建一个 minimax 函数,需要对每次迭代进行一些检查。我希望迭代尽可能高效,以便能够增加搜索深度,因此想知道 Python if 语句在 for 循环中的工作原理。让我给你一个简单的例子:

# 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 语句同时包含函数和变量检查,这可能相对耗时。因此,我想知道像示例 2 那样将 and 语句分解为更多 if 语句是否更有效,或者这是否真的无关紧要?一般来说。

最佳答案

大多数编程语言,包括 Python将“短路” bool 逻辑检查 - 这意味着一旦知道真值,它们就不会继续评估。多个 if 语句或和/或语句之间的差异可以忽略不计,您应该考虑哪个更具可读性;另一方面,如果其中一些支票更昂贵或信息量更大,则支票的顺序可能会有所不同。

关于python - 使用 if 语句的最有效的 Python 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59128482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com