Python:如果达到2个条件中的1个,那么while应该停止迭代吗?
我在这里举了一个非常简单的例子:Python:如果达到2个条件中的1个,那么while应该停止迭代吗?,python,python-3.x,while-loop,Python,Python 3.x,While Loop,我在这里举了一个非常简单的例子: def sourcecode(a,b,c,alternatief=False): volume_a, volume_b = 0, 0 while volume_a != c or volume_b != c: print(volume_a,volume_b) volume_a += 1 volume_b += 2 if volume_a == c: return volum
def sourcecode(a,b,c,alternatief=False):
volume_a, volume_b = 0, 0
while volume_a != c or volume_b != c:
print(volume_a,volume_b)
volume_a += 1
volume_b += 2
if volume_a == c:
return volume_a
elif volume_b == c:
return volume_b
print(sourcecode(7,3,5))
当然,这将是一个无限循环,因为这两个循环中的1永远不会到达c。
但我试图弄明白的是,如果满足两个条件之一,如何编写while语句来停止。这是一个相对简单的调整:
while volume_a != c and volume_b != c:
^
这要求两者都为True
才能继续,因此如果其中一个变为False
,则停止循环
使用或:
True or True == True
True or False == True
False or True == True
False or False == False # need both to match to break out
使用和:
True and True == True
True and False == False # break out here
False and True == False # or here
False and False == False
您需要使用和
,而不是或
。当其中一个条件为False
时,循环将退出:
while volume_a != c and volume_b != c:
print(volume_a,volume_b)
volume_a += 1
volume_b += 2
如果您使用的是或
,则仅当这两个条件都为False
时,它才会停止。通过使用和
,只有当这两个条件都为真时,循环才会继续
希望这有帮助 其他人的响应很好,但您可以简单地使用无限循环并从中返回
def sourcecode(a,b,c,alternatief=False):
volume_a, volume_b = 0, 0
while True:
if volume_a == c:
return volume_a
if volume_b == c:
return volume_b
print(volume_a,volume_b)
volume_a += 1
volume_b += 2
print(sourcecode(7,3,5))
嗯,谢谢,这确实有帮助。这是一个相当简单的解决方案,但如果我从某种逻辑意义上对其进行分解(尽管从第一个角度看,它似乎不太合乎逻辑),它实际上是有意义的:)我添加了更多的信息,希望能让它更清晰