Python:如果达到2个条件中的1个,应该停止迭代吗?

Mic*_*mas 0 python while-loop python-3.x

我在这里设置了一个非常简单的例子:

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))
Run Code Online (Sandbox Code Playgroud)

当然,这将是一个无限循环,因为两个中的一个永远不会达到c.但我想弄清楚的是如果满足两个条件之一,如何编写我的while语句来停止.

jon*_*rpe 6

这是一个相对简单的调整:

while volume_a != c and volume_b != c:
                    ^
Run Code Online (Sandbox Code Playgroud)

这要求两者都要True继续,所以如果任何一个变成,就停止循环False.

or:

True or True == True
True or False == True
False or True == True
False or False == False # need both to match to break out
Run Code Online (Sandbox Code Playgroud)

and:

True and True == True
True and False == False # break out here
False and True == False # or here
False and False == False
Run Code Online (Sandbox Code Playgroud)