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))

嗯,谢谢,这确实有帮助。这是一个相当简单的解决方案,但如果我从某种逻辑意义上对其进行分解(尽管从第一个角度看,它似乎不太合乎逻辑),它实际上是有意义的:)我添加了更多的信息,希望能让它更清晰