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语句块。
===================== RESTART: C:/Users/selidev/Desktop/t.py ===================== 第0次尝试: 第1次尝试: 第2次尝试: 第3次尝试: 第4次尝试: 第5次尝试: 第6次尝试: 第7次尝试: 第8次尝试: 第9次尝试: 第10次尝试: 第11次尝试: 第12次尝试: 第13次尝试: 第14次尝试: 第15次尝试: 第16次尝试: 第17次尝试: 第18次尝试: 第19次尝试: 生成失败
最后有输出“生成失败”,是由于没有执行到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次尝试:
生成失败
更多Python基础操作知识,大家可以到B站/优酷/爱奇艺/好看视频/腾讯视频搜索“刘金玉”,可以找到《零基础Python教程》和《Python高级进阶教程》视频合集哦!全部免费亲情奉献!
预告:【Python编程技能问答002】 ,欢迎继续关注!