Skip to main content
 首页 » 编程设计

python之for循环在python中在哪里结束

2025年05月04日9虾米哥

如果我得到这个代码示例:

for s,d in grid_values(grid).items(): 
    if d in digits and not assign(values, s, d): 
        return False ## (Fail if we can't assign d to square s.) 
return values 

我怎么知道 for 在哪里结束?因为据我所知,您可以在一行中写下所有这些内容。

请您参考如下方法:

for 循环在缩进回到与 for 语句相同或更低级别的行结束。

在您的示例中,这是在 return values 语句中。

当if语句变为True并执行return False语句时,循环也会终止;该函数在该点返回“早”,循环的其余部分将被忽略。

如所写,您不能将代码减少到一行,因为您不能在一行中组合多个复合语句(采用缩进代码块的语句)。您可以使用带有生成器表达式的 any() 函数调用将其减少到两行,替换 for 语句,但我认为它不会提高可读性:

if any(not assign(values, s, d) for s, d in grid_values(grid).items() if d in digits): 
    return False 
return values 

然后你可以用一个条件表达式将所有塞进一行,以进一步破坏可读性:

return False if any(not assign(values, s, d) for s, d in grid_values(grid).items() if d in digits) else values 

不要那样做..