Python有两种循环模式,我们先讲遍历循环。
先看一个案例:
for i in range(1,10):
print(i,end = '')
打印出来些什么?是不是123456789?大家仔细看这个代码,是不是有我们昨天说的:缩进。我们现在来看看遍历循环的格式:
for 循环变量 in 遍历结构:
语句块
大家肯定搞不明白:什么叫遍历???
遍历结构可以是字符串、文件、range()函数或组合数据类型等。
遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的
这下懂了吧。如果还不懂,我有个图,不过大家应该看不懂…
所以就不展示了吧…
没关系,其实大家多练练就好了。
下面给大家讲讲range函数:
range(a,b,c)
a是开始,默认为0。b是结束的(不算),c是步长,默认为1。比如:
for i in range(1,5): #1,2,3,4
print(i)
print(i)
我们来解析一下:
第一次循环,i被赋值为1,打印为1
第二次循环,i被赋值为2,打印为2
第三次循环,i被赋值为3,打印为3
第四次循环,i被赋值为4,打印为4
循环结束,最后打印i,i的值最后被赋值为4,因此打印4,所以所有的运行结果为:
为什么换行?很简单,我们没加end = ‘’,加了就行了。
我们再来个难一点的:
for i in range(1,5):
if i == 2:
print('i是2,你中奖了!')
else:
print('i是{},你没中奖。'.format(i))
这个我们再来分析分析:
第一次循环,i被赋值为1,i不为2,因此打印出:i是1,你没中奖。
第二次循环,i被赋值为2,i为2,因此打印出:i是2,你中间奖了!
第三次循环,i被赋值为3,i不为2,因此打印出:i是3,你没中奖。
第四次循环,i被赋值为4,i不为2,因此打印出:i是4,你没中奖。
不难吧?现在我们来个好玩的:
for i in range(1,10):
for j in range(1,i+1):
print('{}*{}={} '.format(i,j,i*j),end = '')
print('')
打印了什么,乘法表对吧?自行分析一下吧!
现在我们来讲讲无限循环。
i = 0
while True:
print(i)
i += 1
你的电脑卡了吗?呵呵,没错,这就是无限循环,好了,现在停下程序,来看干货。
while 条件:
语句块
当程序执行到while语句时,判断条件如果为True,执行语句块,语句结束后返回再次判断while语句的条件;当条件为False时,循环终止。继续后续语句。
讲到无限循环,那我们怎么让程序跳出无限循环且不手动停止程序呢?这里就有两个关键字:
break
continue
我们先用for语句试一试break
a = 'python'
for i in a:
if i == 'h':
print('
你输入的内容里有h,h是违规字。')
break
print(i,end = '')
我们再用试一试continue
a = 'python'
for i in a:
if i == 'h':
print('
你输入的内容里有h,h是违规字。')
continue
print(i,end = '')
这两个有什么区别呢?虽然结果不同,但是说明了什么呢?
break用来跳出当前循环,脱离该循环后程序从循环后代码继续执行。
如果有2层或多层循环,break退出最内层循环。
continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。
一头雾水,对吧,那我们还是来分析分析程序:
第一个用break的:
第一次循环,i为’p’,不为’h’,打印’p’
第二次循环,i为’y’,不为’h’,打印’y’
第三次循环,i为’t’,不为’h’,打印’t’
第四次循环,i为’h’,打印’你输入的内容里有h,h是违规字。'跳出内循环。
第二个用continue的:
第一次循环,i为’p’,不为’h’,打印’p’
第二次循环,i为’y’,不为’h’,打印’y’
第三次循环,i为’t’,不为’h’,打印’t’
第四次循环,i为’h’,打印’你输入的内容里有h,h是违规字。’,跳出本次循环
第五次循环,i为’o’,不为’h’,打印’o’
第六次循环,i为’n’,不为’h’,打印’n’
这下懂了吧。
然后现在讲两种扩展模式:
for 循环变量 in 遍历结构:
语句块1
else:
语句块2
当for循环正常执行之后,程序会继续执行else语句中内容。else语句只在循环正常执行之后才执行并结束,因此,可以在语句块2中放置判断循环执行情况的语句。
while 条件:
语句块1
else:
语句块2
当while循环正常执行之后,程序会续执行else语句中内容。else语句只在循环正常执行后才执行,因此,可以在语句块2中放置判断循环执行情况的语句。
————————————————
版权声明:本文为CSDN博主「波斯王」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Persia_king/article/details/105046787