我的Python入门笔记(12)

九章、流程控制——循环语句


Although never is often better than *right* now. ——The Zen of Python


  循环主要有两种类型:

  1.重复一定次数的循环,称为计次循环,如 for 循环。

  2.一直重复、直到条件不满足时才结束的循环条件,称为条件循环,只要条件为真,这种循环会一直循环下去,如while循环.

一、for循环

  for循环是一个计次循环,通常适用于枚举或遍历序列,以及迭代对象中的元素。一般应用在循环次数已知的情况下,语法格式如下:

for 迭代变量 in 对象:
    循环体

  其中迭代变量用于保存读取出的值,对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表和元组;循环体为一组被重复执行的语句。执行流程如图所示:

  1.进行数组循环

  在使用for循环时,最基本的应用就是进行数值循环。循环可以帮助我们解决很多重复输入或计算问题.

1 for i in [1,2,3,4,5,6]:
2     print("飞雪连天射白鹿,笑书神侠倚碧鸳")
3 输出:
4 飞雪连天射白鹿,笑书神侠倚碧鸳
5 飞雪连天射白鹿,笑书神侠倚碧鸳
6 飞雪连天射白鹿,笑书神侠倚碧鸳
7 飞雪连天射白鹿,笑书神侠倚碧鸳
8 飞雪连天射白鹿,笑书神侠倚碧鸳
9 飞雪连天射白鹿,笑书神侠倚碧鸳

  利用数值循环可以输出列表的值,当循环次数过多,比如实现从1到100的累加求和,这时候可以使用range()函数。示例如下:

1 print("计算1到100的累加求和:")
2 result = 0
3 for i in range(101):
4     result += i
5 print(result)
6 输出:
7 计算1到100的累加求和:
8 5050

  range()函数是Python中的内置函数,用于生成一系列连续的整数。多用于for循环中,其语法格式如下:

  range(start,end,step)

  start:用于指定计数的起始值,可以省略,如果省略则从0开始。

  end:用于指定计数的结束值(但不包括该值)不能省略。当range()函数中只有一个参数时,即表示指定计数的结束值。

  step:用于指定步长,默认步长为1

  在使用range()函数时,如果只有一个参数,那么表示指定的是end;如果是两个参数,则表示指定是start和end;只有三个参数都存在时,最后一个才表示步长.示例如下:

1 for i in range(1,10,2):
2     print(i,end=' ')
3 输出:
4 1 3 5 7 9 

   2.遍历字符串

  使用for循环语句除了可以循环数值,还可以逐个遍历字符串,示例如下:

 1 str1 = "我是雨霓"
 2 print(str1)
 3 for i in str1:
 4     print(i)
 5 输出:
 6 我是雨霓
 7  8  9 10

二、while循环

  while循环时通过一个条件来控制是否继续反复执行循环体中的语句。语法格式如下:

while 条件表达式:
    循环体

  循环体是指一组被重复执行的语句。当条件表达式的返回值为True时,则执行循环体中的语句;执行完毕后,重新判断条件表达式的返回值,直到表达式返回结果为False时,退出循环。

1 i=1
2 while i <=4:
3     print("飞雪连天射白鹿")
4     i=i+1
5 输出:
6 飞雪连天射白鹿
7 飞雪连天射白鹿
8 飞雪连天射白鹿
9 飞雪连天射白鹿

  使用while循环语句实现从1开始依次尝试符合条件的数,直到找到符合条件的数时,才能退出循环。具体实现方法是:首先定义一个用于计数的变量number和一个作为循环条件的变量none(默认值是真),然后编写while循环语句,在循环体中,将变量number的值加1,并且判断number的值是否符合条件,当符合条件时,将变量none设置为假,从而推出循环,示例代码如下:

 1 print("今有物不知数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n")
 2 none=True
 3 num=0
 4 while none:
 5     num+=1
 6     if num%3==2 and num%5==3 and num%7==2:
 7         print("这个数是:",num)
 8         none = False
 9 输出:
10 今有物不知数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
11 
12 这个数是: 23

  在使用while循环语句时,一定不要忘记添加循环条件改变为False的代码,否则将会产生死循环。

三、循环嵌套

  在Python中,允许一个循环体中嵌入另一个循环,这称为循环嵌套。在Python中,for循环和while循环都可以进行循环嵌套。

  1.在while循环中套用while循环:

while 条件表达式1:
    while 条件表达式2:
        循环体2
    循环体1

  2.在for循环中套用for循环:

for 迭代变量1 in 对象1:
    for 迭代变量2 in 对象2:
        循环体2
    循环体1

  3.在while循环中套用for循环

while 条件表达式1:
    for 迭代变量 in 对象:
        循环体2
    循环体1

  4.在for循环中套用while循环  

for 迭代变量 in 对象:
    while 条件表达式:
        循环体2
    循环体1

  除了以上的四种嵌套格式还可以实现更多的嵌套。

四、跳转语句

  当循环条件一直满足时,程序会被一直执行下去,为了结束这种状况,有以下两种方法:

  1.使用break语句完全终止循环

  2.使用continue语句直接跳到下一次循环

  1.break语句

  break语句可以终止当前循环,包括while和for在内的所有控制语句,break语句一般会结合if语句进行搭配使用,表示再某种条件下,跳出循环。如果使用嵌套循环,break语句将跳出最内层循环。

    1.1在while语句中使用break语句:

while 条件表达式1:
    执行代码
    if 条件表达式2:
        break

    1.2在for语句中使用break语句:

for 迭代变量 in 对象:
    if 条件表达式:
        break

   2.continue语句

  continue语句的作用域没有break语句强大,他只能终止本次循环而提前进入下一次循环中。continue语句一般会结合if语句进行搭配使用,表示在某种条件下,跳过当前循环的剩余语句,然后继续进行下一轮循环。如果使用循环嵌套,continue语句将只跳过最内层循环中的剩余语句。

    2.1在while语句中使用continue语句:  

while条件表达式1:
    执行代码
    if 条件表达式2:
        continue

    2.2在for语句中使用continue语句

for 迭代变量 in 对象:
    if 条件表达式:
        continue
posted @ 2019-06-30 22:54  雨霓同学  阅读(462)  评论(0编辑  收藏  举报