我在这里设置了一个非常简单的例子:
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))
当然这将是一个无限循环,因为两个中的一个永远不会达到c。 但我想弄清楚的是如果满足两个条件中的一个条件,如何编写我的while语句来停止。
答案 0 :(得分:6)
这是一个相对简单的调整:
while volume_a != c and volume_b != c:
^
这需要两个继续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
使用and
:
True and True == True
True and False == False # break out here
False and True == False # or here
False and False == False
答案 1 :(得分:1)
您需要使用and
,而不是or
。当其中一个条件为False
时,循环将退出:
while volume_a != c and volume_b != c:
print(volume_a,volume_b)
volume_a += 1
volume_b += 2
如果您使用or
,则仅当两个条件均为False
时才会停止。通过使用and
,仅当两个条件均为True
时,循环才会继续。
希望这有帮助!
答案 2 :(得分:0)
其他人的反应很好但你可以简单地使用无限循环并从中返回
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))