我有两个列表:
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
我想把List2添加到List1中,直到我们找到第一个大于10的和,打印出总和,然后停止。
我的代码是:
for val1 in list1:
for val2 in list2:
if val1+val2 > 10 :
print (val1, val2, val1 + val2)
break
else:
continue
但结果是:
0 11 11
1 10 11
2 9 11
3 8 11
4 7 11
5 6 11
如何使循环在第一个和处停止?非常感谢。注意:我想维护for。。。if循环结构。
您的'break'语句只中断第一个(EDIT:inner(循环。将其放入一个函数中,并返回如下值:
def foo(list1, list2):
for val1 in list1:
for val2 in list2:
if val1+val2 > 10 :
print (val1, val2, val1 + val2)
return (val1 + val2) # or whatever you are interested in
else:
continue
break关键字用于突破仅一个循环突破多个循环最初使用_break
boolean
变量,即False
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
_break = False
for val1 in list1:
for val2 in list2:
if val1+val2 > 10 :
print (val1, val2, val1 + val2)
_break = True
if _break:
break
if _break:
break
输出:
0 11 11
只需维护一个标志变量即可脱离外循环。
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
flag=0
for val1 in list1:
for val2 in list2:
if val1+val2 > 10 :
print (val1, val2, val1 + val2)
flag=1
break
else:
continue
if(flag):
break
如果在此之后没有任何要执行的内容,可以使用exit((方法终止代码。
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
for val1 in list1:
for val2 in list2:
if val1+val2 > 10 :
print (val1, val2, val1 + val2)
exit()
else:
continue
这只是打破了内部循环。若你们想打破这两个循环,那个么,你们可以使用flag。
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
flag = 0
for val1 in list1:
for val2 in list2:
if val1+val2 > 10 :
print(val1, val2, val1 + val2)
flag = 1
break
else:
continue
if flag:
break