python语法元素(四)

1.8循环结构

临近国庆节,你想要给你的同桌发一句国庆节快乐,那么你可以跟他私聊发送信息就行,但是如果你想要给你的所有联系人都发送国庆节快乐的话,要是一个一个私发的话简直太耽误事了而且要浪费很多时间,所以就有人开发出了群发这个功能,只要选择你想要发送祝福的好友然后点击群发即可。其实这里就运用了我们编程中的循环结构。
你手动选择想要发送祝福的好友,实质上是选择了想要发送祝福的人数没毛病吧,嗯好,那我们继续。
选择完人数以后我们会编辑想要说的话,比如我这里编辑国庆节快乐,点击群发就ok了,你的好友们就都收到了你的祝福了。这里你的循环次数已经确定了,即为好友人数。
我们生活中有两种循环,一种是已知循环次数的循环,一种是循环次数位置的循环。它们分别对应python中的for循环和while循环。
我来说一下两种循环的语法然后借此情景给大家展示一下怎么去应用这两种循环。


1.8.1for循环

for循环也叫做遍历循环,其语法如下:
for (循环变量) in (遍历结构):
(语句块)
之所以把for循环称为遍历循环是因为for循环的语句块执行次数是由遍历结构中的元素个数来决定的,每执行一次循环就会把遍历结构中的元素取出来放到循环变量中,然后执行一次循环。
Q:那我怎么知道什么样的类型可以当作遍历结构来使用呢?
A:字符串、文件、组合数据类型、或者是range函数都可以用来当作遍历结构使用。(字符串的话可以把每一个字符当作是一个元素来遍历,文件可以把每一行当作是一个元素来遍历,组合数据类型我会在后续进行更新,字符串也是属于我们的组合数据类型。range函数可以创建一个整数列表,把列表中的每个数当成元素来遍历)


这里补充一下range函数的语法,以后在特定篇章也会提到
range(start, stop[, step])
range函数有三个参数,最后一个参数带括号说明是可有可无的,当然也可以只给range函数传递一个参数
如代码
a为传递一个参数,b为传递两个参数,c为传递三个参数

a=range(10)
b=range(1,6)
c=range(1,9,3)
print("a:")
for i in a:
    print(i,end=" ")
print("\nb:")
for i in b:
    print(i,end=" ")
print("\nc:")
for i in c:
    print(i,end=" ")

我们来看输出结果:
在这里插入图片描述
由此可见:①传递一个参数n,则默认生成0-n的一个列表

②传递两个参数m和n则默认生成m-n的一个列表且第一个参数必须小于第二个参数否则生成空列表如:b=range(6,6),c=range(6,4)还想bc均是空列表如下图
在这里插入图片描述
③如果传递三个参数,m,n,p则在m到n这么多数中,取出m并以步长p取出数字创建列表,如上图c=range(1,9,3)在1-9这么多数中取出1,然后依次取出1增加3的值,直到超过9,也可以理解为创建了一个公差为p首相为m且最后一项不超过n的等差数列

其实说了这么多都可以吧range函数看成是产生等差数列的函数:如果传入一个参数m则产生首相为0,公差为1,最大值为m的等差数列;如果传入两个参数m和n,要满足m<n,产生首相为m,公差为1,最大值为n的等差数列;如果传入三个参数m,n,p则产生首相为m,公差为p,且最大项不超过n的等差数列,你品,你细品,你细细的品

补充一下:python的for循环还有一种拓展模式:
for(循环变量) in (遍历结构):
(语句块1)
else:
(语句块2)
else后的语句块只有当for循环正常执行并执行结束时才会执行,可用于观察for循环是否正常执行并结束,像极了我们去考科目二和科目三,只有考试合格才能去打印成绩单,我们就可以把打印的成绩单理解为else后的语句块2


1.8.2while循环

由于while循环是位置循环次数的循环,那我既然不知道循环次数那我要怎么退出呢?这里就要介绍一下两个保留字break和continue。
break用于跳出最内层的for循环或者while循环,仅跳出相对于break来说的最内层循环;continue用来结束本次循环,根据循环条件判断下一次循环是否执行,也就是当程序执行到continue时,不会继续执行continue后的语句直接判定是否进行下次循环。
while循环的语法:
while(条件):
(语句块)
当while括号中的条件为真时进行循环。
while循环同样也具有一种拓展模式:
while(条件):
(语句块)
else:
(语句块2)
当while循环正常执行并执行结束后才会执行else后的语句块2


下面给大家展示一下while循环的用法:

i=0
count=0
while(True):
    i=i+1

    if count>=7:
        break
    if i%2==0:
        count=count+1
    elif i%3==0:
        continue
    print(i, end=" ")

是一个不断增加的值步长为1.count作为计数变量,当计数次数大于等于7时退出循环,当i为偶数时才记一次数,最后输出I的值。当count=7时已经满足了count>=7的条件此时执行break语句退出while循环当I为3的倍数时执行continue语句,放弃此次循环,直接开始判定下次循环是否执行
在这里插入图片描述
从输出结果大家可以看出来输出的i值中没有三的倍数,说明当i是三的倍数时,最后的print打印语句没有执行。


好啦,今天就到这吧,下次再见咯

猜你喜欢

转载自blog.csdn.net/zmj11_/article/details/107840812