zoukankan      html  css  js  c++  java
  • 我的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("今有物不知数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
    ")
     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
  • 相关阅读:
    数据库MySQL安装和校验
    字符集和字符编码
    Eclipse之文件【默认编码格式设置】,防止乱码等问题
    一天搞定CSS(扩展):CSS Hack
    Eclipse导入项目常见问题----facet版本问题04
    php 实现python hashlib.md5.digest
    刚安装python,使用pip install安装第三方库报错,提示“由于目标计算机积极拒绝,无法连接”
    Ubuntu 安装 Elasticsearch
    PHP
    php面试题之四——PHP面向对象(基础部分)
  • 原文地址:https://www.cnblogs.com/1210x1184/p/11110369.html
Copyright © 2011-2022 走看看