for循环和else连用结构,结合break关键词使用有何不同?
您可以打开IDEL,编写如下代码进行测试和观察:
测试代码文字版如下:
import random
for i in range(20):
print(f'第{i}次尝试:')
mycode=random.randint(1,100)
if 40<mycode<50:
print(mycode)
break
else:
print('生成失败')
TIP:
一般情况下,在for循环内部,如果不使用break关键词,那么在for循环结束后,会进入与for连用的else语句块。
最后有输出“生成失败”,是由于没有执行到break关键词。
但是,如果在for循环中一旦被break之后,则不再进入else语句。
测试结果:
===================== RESTART: C:/Users/selidev/Desktop/t.py =====================
第0次尝试:
第1次尝试:
45
被break了
===================== RESTART: C:/Users/selidev/Desktop/t.py =====================
第0次尝试:
第1次尝试:
43
被break了
===================== RESTART: C:/Users/selidev/Desktop/t.py =====================
第0次尝试:
第1次尝试:
第2次尝试:
第3次尝试:
第4次尝试:
第5次尝试:
第6次尝试:
第7次尝试:
第8次尝试:
46
被break了
在这里,可能会想到是否可以将break改成continue呢?
经过测试,您会发现,continue被执行后,仍然会执行到与for并联的else语句块。
测试结果如下:
= RESTART: C:\Users\selid\Desktop\t.py
第0次尝试:
第1次尝试:
第2次尝试:
第3次尝试:
第4次尝试:
第5次尝试:
第6次尝试:
第7次尝试:
第8次尝试:
第9次尝试:
第10次尝试:
第11次尝试:
第12次尝试:
第13次尝试:
第14次尝试:
43 此处被执行到了continue
第15次尝试:
第16次尝试:
第17次尝试:
第18次尝试:
第19次尝试:
生成失败
领取专属 10元无门槛券
私享最新 技术干货