我试图在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)范围内。我在这里的执行方式错了吗?请提供任何指导。
答案 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循环时使用它。