美文网首页
python的循环语句结构

python的循环语句结构

作者: 无尽的结 | 来源:发表于2019-01-06 14:53 被阅读0次

    一、迭代循环(for)

    1.迭代循环的前提条件有两种:一种是从一个容器中获取每一个元素或者数据对象,第二种是一个逻辑表达式。
    1.1 迭代循环for语句的语法结构如下图:

    #首先前面是一个for然后是一个循环变量接着是一个关键字in最后是一个可迭代对象冒号结尾。
    for <循环变量> in <可迭代对象>:
            <语句块1>
            break #跳出循环
            continue #略过余下的循环语句
    else:
         <语句块n> #迭代完毕,则执行
    

    1.2 for循环语法:for、in、else都是"保留字"在python中不能当着变量或者函数来使用,可迭代对象表示从这个数据对象中可以逐个取出数据项赋值给"循环变量",所以循环变量的值每次都会根据迭代获取的值而发生变化举个例子如下图:

    for n in range(5): #这里引用到了一个函数(range)那么返回的是一个从0开始到终点的数列不包含终点数如这个例子终点数为5那么就返回0 1 2 3 4
        print(n)
    alist = ['a',123,True]
    for i in alist: #循环变量i逐个获取列表中的每一个元素
        print(i)
    adict = {'name':'tom','age':18,'sal':3500}
    for k in adict: #循环变量i获取字典中的每一个标签(key)
        print(k,adict[k]) #打印出字典中每一个标签和标签关联的数据对象
    for z,x in adict.items(): #也可以引用字典中的方法.items这个.items就是把key和value的关联的一对值把它映射为一个二元组,这样的一些二元组
                              #会构成一个更大的一个元组为ltems,那么获取的每一个数据项都一个二元组,就可以直接用连个循环变量并用逗号分隔(z,x)
                              #那个z,x等于被赋值为二元组的时候,那么z就是二元组当中的第一个x就是第二个,第一个就是代表key第二个就是值
        print(z,x) 
    

    输出

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    0
    1
    2
    3
    4
    a
    123
    True
    name tom
    age 18
    sal 3500
    name tom
    age 18
    sal 3500
    
    2.(range)函数:range构建的数列,包含起点整数,而不包含终点整数

    2.1 range(<终点>):返回从0开始到终点的数列,如果终点是一个整数n那么返回的0-n-1这么一个数列,例如range(100)那么返回的是0-100-1的数列也就是0-99的整数如下图:

    for n in range(10):
        print(n)
    

    输出

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Process finished with exit code 0
    
    

    2.2 range(<起点>,<终点>):从0以外的任何整数开始构建数列,例如:range(10,30)10为起点30为终点,那么返回的是10-29的整数如下图:

    for n in range(10,30):
        print(n)
    

    输出

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    Process finished with exit code 0
    

    3.3 range(<起点 >,<终点>,<步长>):这里的步长跟切片中的步长的作用是一样的比如说range(10,30,2)返回的是10-29中的所有偶数,range(1,30,2)返回1-29之间的所有奇数,也可以通过修改数列的步长,将步长设置为负数能够实现反向数列如下图:

    for n in range(10,30,2):
        print(n)
    for m in range(1,30,2):
        print(m)
    for b in range(20,5,-1): #步长为-1则为反向获取20-5+1的数值,步长为负时,起点数要大于终点数
        print(b)
    

    输出

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    10
    12
    14
    16
    18
    20
    22
    24
    26
    28
    1
    3
    5
    7
    9
    11
    13
    15
    17
    19
    21
    23
    25
    27
    29
    20
    19
    18
    17
    16
    15
    14
    13
    12
    11
    10
    9
    8
    7
    6
    
    Process finished with exit code 0
    
    4.嵌套循环中的跳出和继续

    4.1 continue语句和break语句都只能在循环内部使用,它们的作用只能适用于离它们最近的一层循环。break是跳出当前循环或者说离的最近的循环并结束本层循环如下图:

    image.png

    4.2对以上图举个例子如下图:
    图1:

    n=10
    sum=0
    for i in range(1,n): #循环1
        sum+=i
        for k in range(i): #循环2
            k=0
            if k <= sum:
                print("hello") #输出9个hello
                break #跳出当前循环也就是第二层循环
            else:
                print("world") 
    

    图2:

    n=10
    sum=0
    for i in range(1,n): #循环1
        sum+=i
        for k in range(i): #循环2
            k=0
            if k >= sum:
                print("hello")
                break #跳出当前循环也就是第二层循环
            else:
                print("world") #输出1-9的累加之和个world
    

    输出图1:

    hello
    hello
    hello
    hello
    hello
    hello
    hello
    hello
    hello
    

    输出图2:

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    world
    
    Process finished with exit code 0
    

    图3:

    n=(int(input()))
    l=(int(input()))
    sum=0
    sum1=0
    for i in range(1,n): #循环1
        sum+=i
        for k in range(1,l): #循环2
            sum1+=k
            if sum1 < sum:
                print("hello")
                print("world")
    

    图3输出:

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    5
    2
    hello
    world
    hello
    world
    hello
    world
    Process finished with exit code 0
    

    图4:

    n=(int(input()))
    l=(int(input()))
    sum=0
    sum1=0
    for i in range(1,n): #循环1
        sum+=i
        for k in range(1,l): #循环2
            sum1+=k
            if sum1 < sum:
                print("hello")
                continue  # 省略余下循环语句并接着下一次循环
                print("world")
    

    图4输出:

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    5
    2
    hello
    hello
    hello
    
    Process finished with exit code 0
    

    二、while循环

    1.python中while循环的的一般形式如下图:
    while 判断条件:
            语句
    #这里需要注意冒号和缩进
    

    举个实例用while循环来计算1-100的总和如下图:

    n = 100
    sum = 0
    a = 1
    while a<=n: #设置一个判断条件a<=n如果满足这个条件则一直执行下面的语句块直到条件不满足了为止
        sum += a
        a += 1
    print("1 - %d 之和为: %d" % (n,sum))
    

    输出

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    1 - 100 之和为: 5050
    
    Process finished with exit code 0
    
    2.while循环使用else语句

    2.1在while......else在条件语句为false时执行else的语块句如下图:

    c = 0
    while c < 5: #c小于5时这执行下面的语句块
        print(c,'小于5')
        c += 1
    else: #当c大于等于5时执行下面的语句块
        print(c,'大于或等于5')
    

    输出

    F:\j\venv\Scripts\python.exe F:/j/demo5.py
    0 小于5
    1 小于5
    2 小于5
    3 小于5
    4 小于5
    5 大于或等于5
    
    Process finished with exit code 0
    

    2.2简单语句组,类似if语句的语法,如果while循环体中只有一条语句,可以将该语句与while写在同一行中,如下所示:

    flag = 1
    while (flag) : print('hello world')
    print('good bye')
    #以上的无限循环可以使用CTRL+C来中断循环
    

    输出

    hello world
    hello world
    hello world
    hello world
    hello world
    ......
    

    相关文章

      网友评论

          本文标题:python的循环语句结构

          本文链接:https://www.haomeiwen.com/subject/vzajrqtx.html