在For循环中执行条件

时间:2020-01-14 19:23:04

标签: python-3.x for-loop if-statement

我试图在For循环中强制执行IF条件,但在这里似乎不起作用。我在这里有一个代码段:

for iterate in range(N):
    for rows in range(rows):
        vector1 = function1(x, rows)
        x = vector1
        vector2 = function2(z, rows)
        z = vector2
        if a <= angle_between(x, z) <= b:    
            break

此处,“ function1”,“ function2”和“ angle_between”都是已经定义的函数。在每个循环中同时调用“ function1”和“ function2”,我希望ForLoop会在If语句处停止。但是,当我运行代码并检查“ angle_between”的最终输出时,它不在(a,b)范围内。我在这里的执行方式错了吗?请提供任何指导。

3 个答案:

答案 0 :(得分:0)

您只能突破内循环。试试这个:

done = False
for iterate in range(N):
    for rows in range(rows):
        vector1 = function1(x, rows)
        x = vector1
        vector2 = function2(z, rows)
        z = vector2
        if a <= angle_between(x, z) <= b:    
            done = True
            break
    if done:
        break

答案 1 :(得分:0)

要在不使用变量的情况下从内部循环中跳出两个循环,可以将else子句放在内部循环外,并继续直到if语句为真。

<div class="outer">
  <span class="inner">Lorem</span>
</div>

答案 2 :(得分:0)

在不知道任何变量的值,您想通过循环实现什么或函数包含什么的情况下,很难说出问题所在。可能有很多事情。

可能是您没有退出第二个for循环。函数的逻辑可能存在缺陷。

也可能是您将rows的值进行了突变,然后在for循环的下一次迭代中重新使用它。

示例:

rows = 5
N = 5
for iterate in range(N):
    print(rows)
    for rows in range(rows):

for rows in range(rows):的第一次迭代为5。 循环5次后,rows的值将为4,并在下次启动内部for循环时使用它。