zoukankan      html  css  js  c++  java
  • Python基础入门-For循环

       For循环的功能比较强大,他可以帮助我们实现很多重复性的工作。而且for循环能迭代不同的数据结构。他的应用也十分的广泛,作为初学者,我们需要对循环的概念多加理解和练习。接下来我们就来学习for循环的一些相关知识。可能不是最全的知识,但是我会努力把最新的知识更新进来。咱们废话不多说,继续接着上一篇的。

        首先我们来看一下for循环的定义:在python中,for循环实际是把后面序列中的元素依次赋值给前面的变量,每赋值一次就会执行一次语句块的内容,也就是循环一次。看一下for循环的结构吧:

    for   变量    in     可迭代的对象:
        语句块

    OK,我们继续来看一下它的用法吧。

    1.for循环迭代字符串
    2.for循环迭代列表
    3.for循环迭代元祖
    4.for循环迭代字典
    5.for循环中的enumerate(枚举)
    6.for循环的嵌套循环实例  

    1.for循环迭代字符串

    for i in 'python':
        print 'This is print',i
    输出结果
    This is print p
    This is print y
    This is print t
    This is print h
    This is print o
    This is print n

    2.for循环迭代列表

    list = ['apple','python','pear','orange']
    for  i  in  range(len(list)):
        print  "当前打印的是:",list[i],'长度是',len(list[i])

    输出结果是:

    当前打印的是: apple 长度是 5
    当前打印的是: python 长度是 6
    当前打印的是: pear 长度是 4
    当前打印的是: orange 长度是 6

    3.for循环迭代元祖

    for  i  in ('tom','jim','jack'):
        print '当前打印的是',i,'+','长度是',len(i)

    输出结果:

    当前打印的是 tom + 长度是 3
    当前打印的是 jim + 长度是 3
    当前打印的是 jack + 长度是 4

    4.for循环迭代字典

    默认返回的是字典中的键,如果想返回字典的值 请使用 dic.vales()方式
    dic  = {'name':'xiaoming','age':15,'address':'beijing'}
    for i  in  dic:
        print i  
    输出结果是:
    age
    name
    address

    将字典中的键和值通过元祖的形式返回并存储到列表中。

    dic  = {'name':'xiaoming','age':15,'address':'beijing'}
    for  k,v  in dic.items():
        print k,"===",v
    输出结果
    age === 15 name === xiaoming address === beijing

    5..for循环中的enumerate(枚举)  enumerate的作用是将可迭代的对象里面的元素可以通过索引位置返回。

    list = ['a','b','c']
    for  k,v  in enumerate(list):
        print k,'===',v 

    输出结果

    0 === a
    1 === b
    2 === c

    6.for循环的嵌套循环实例

    嵌套的执行顺序,最外层的大循环执行一次,里面的小循环执行10次,然后在大循环执行一次,小循环在执行10次,之到大循环结束。
    大循环每次取一个值,小循环就会取1-10,一直到大循环取值i=10时,小循环执行完毕。整个嵌套循环结束。
    for  i  in range(1,10):
        print '----------->',i
        for  j  in range(1,10):
            print '++++++++=',j

    输出结果如下:

    -----------> 1
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    ++++++++= 5
    ++++++++= 6
    ++++++++= 7
    ++++++++= 8
    ++++++++= 9
    -----------> 2
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    ++++++++= 5
    ++++++++= 6
    ++++++++= 7
    ++++++++= 8
    ++++++++= 9
    -----------> 3
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    ++++++++= 5
    ++++++++= 6
    ++++++++= 7
    ++++++++= 8
    ++++++++= 9
    -----------> 4
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    ++++++++= 5
    ++++++++= 6
    ++++++++= 7
    ++++++++= 8
    ++++++++= 9
    
    ....................

    如果在里面加一些条件来限制呢?break是中断循环,满足条件直接停止后面的循环。

    最外层的大循环执行一次,小循环当满足j=5的时候直接停止循环,小循环每次取的值只能是1,2,3,4

    一直到最外层的大循环i=10的时候,小循环结束最后一次循环1,2,3,4  整个循环最后退出。

    for  i  in range(1,10):
        print '----------->',i
        for  j  in range(1,10):
            if  j == 5:
                break
            print '++++++++=',j

    输出结果如下:

    -----------> 1
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    -----------> 2
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    -----------> 3
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    -----------> 4
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    -----------> 5
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4

    如果把break换成continue呢?continue是跳出当前循环,当次循环满足条件直接跳出,在继续执行下一次循环。简单点理解就是满足条件,就跳出该次循环。进行下一次的循环体。我们看下这段代码的输出效果:

    for  i  in range(1,10):
        print '----------->',i
        for  j  in range(1,10):
            if  j == 5:
                continue
            print '++++++++=',j
    输出结果:
    -----------> 1
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    ++++++++= 6
    ++++++++= 7
    ++++++++= 8
    ++++++++= 9
    -----------> 2
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    ++++++++= 6
    ++++++++= 7
    ++++++++= 8
    ++++++++= 9
    -----------> 3
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    ++++++++= 6
    ++++++++= 7
    ++++++++= 8
    ++++++++= 9
    -----------> 4
    ++++++++= 1
    ++++++++= 2
    ++++++++= 3
    ++++++++= 4
    ++++++++= 6
    ++++++++= 7
    ++++++++= 8
    ++++++++= 9

    从结果可以狠明显的看出,当大循环执行一次的时候,小循环会执行9次,而不是10次,取值为1,2,3,4,6,7,8,9直接跳过了j=5的时候的取值,然后外层的循环体在进行循环,内层的循环在进行1-9的取值(除5以外),每次的运行结果一zhi。所以,这就是continue的作用。

    我们在变形for循环嵌套:

    这一次我们将内层的循环换成了range(1,i+i)也就是当大循环i=1的时候,j的取值有1,2  类似range(1,2),但是取不到2,只能取到1,

    所以第一次的循环就是i=1 ,j=1    第二次的循环就是i=2,j=1,2   第三次的循环就是i=3,j=1,2,3   第四次的循环就是i=4,j=1,2,3,4

    一直到 i= 10  j=1,2,3,4,5,6,7,8,9

    for  i  in range(1,10):
        print '----------->',i
        for  j  in range(1,i+1):
            print  '+++++++++++',j

    所以,最后的打印结果如下:

    -----------> 1
    +++++++++++ 1
    -----------> 2
    +++++++++++ 1
    +++++++++++ 2
    -----------> 3
    +++++++++++ 1
    +++++++++++ 2
    +++++++++++ 3
    -----------> 4
    +++++++++++ 1
    +++++++++++ 2
    +++++++++++ 3
    +++++++++++ 4
    -----------> 5
    +++++++++++ 1
    +++++++++++ 2
    +++++++++++ 3
    +++++++++++ 4
    +++++++++++ 5
    -----------> 6
    +++++++++++ 1
    +++++++++++ 2
    +++++++++++ 3
    +++++++++++ 4
    +++++++++++ 5
    +++++++++++ 6
    -----------> 7
    +++++++++++ 1
    +++++++++++ 2
    +++++++++++ 3
    +++++++++++ 4
    +++++++++++ 5
    +++++++++++ 6
    +++++++++++ 7
    -----------> 8
    +++++++++++ 1
    +++++++++++ 2
    +++++++++++ 3
    +++++++++++ 4
    +++++++++++ 5
    +++++++++++ 6
    +++++++++++ 7
    +++++++++++ 8
    -----------> 9
    +++++++++++ 1
    +++++++++++ 2
    +++++++++++ 3
    +++++++++++ 4
    +++++++++++ 5
    +++++++++++ 6
    +++++++++++ 7
    +++++++++++ 8
    +++++++++++ 9

    同样的如果三层循环嵌套呢?他们每一层的循环规律是怎么样的呢?我们继续探讨一下!

    for  i  in range(1,10):
        print '----------->',i
        for  j  in range(1,10):
            print  '+++++++++++',j
            for k  in range(1,10):
                print '----------------',k
    上面四一个三层嵌套的循环实例。这里面循环分为1,2,3层。最外面的可以看作大循环。中间的看作是中循环,最下面的看作是最内侧的循环。这里面的运行规律是
    当i = 1 时,j=1,k=1,2,3,4,5,6,7,8,9
    接着就是 j=2,k=1,2,3,4,5,6,7,8,9
    接着j=3,k=1,2,3,4,5,6,7,8,9
    接着j=4,k=1,2,3,4,5,6,7,8,9
    接着j=5,k=1,2,3,4,5,6,7,8,9
    接着j=6,k=1,2,3,4,5,6,7,8,9
    ...............................
    一直到j=9,k=1,2,3,4,5,6,7,8,9
    上面的执行完毕,然后大循环在循环一次
    当i = 2时 ,j=1,k=1,2,3,4,5,6,7,8,9
    然后接着就是 j=2,k=1,2,3,4,5,6,7,8,9
    接着j=3,k=1,2,3,4,5,6,7,8,9
    接着j=4,k=1,2,3,4,5,6,7,8,9
    接着j=5,k=1,2,3,4,5,6,7,8,9
    接着j=6,k=1,2,3,4,5,6,7,8,9
    然后直到大循环i=9的时候,中层循环和内层循环全部执行完毕,整个循环退出。
    输出结果:
    -----------> 1
    +++++++++++ 1
    ---------------- 1
    ---------------- 2
    ---------------- 3
    ---------------- 4
    ---------------- 5
    ---------------- 6
    ---------------- 7
    ---------------- 8
    ---------------- 9
    +++++++++++ 2
    ---------------- 1
    ---------------- 2
    ---------------- 3
    ---------------- 4
    ---------------- 5
    ---------------- 6
    ---------------- 7
    ---------------- 8
    ---------------- 9
    +++++++++++ 3
    ---------------- 1
    ---------------- 2
    ---------------- 3
    ---------------- 4
    ---------------- 5
    ---------------- 6
    ---------------- 7
    ---------------- 8
    ---------------- 9
    +++++++++++ 4
    ---------------- 1
    ---------------- 2
    ---------------- 3
    ---------------- 4
    ---------------- 5
    ---------------- 6
    ---------------- 7
    ---------------- 8
    ---------------- 9
    +++++++++++ 5
    ...................................
  • 相关阅读:
    nodejs sequelize 对应数据库操作符的定义
    nodejs利用sequelize-auto 根据数据库的table 生成model
    微信小程序: rpx与px,rem相互转换
    vue 父组件通过props向子组件传递数据/方法的方式
    小程序-wepy学习
    [考试反思]1026csp-s模拟测试88:发展
    [考试反思]1025csp-s模拟测试87:生存
    [考试反思]1024csp-s模拟测试86:消耗
    [考试反思]1024csp-s模拟测试85:以为
    [考试反思]1023csp-s模拟测试84:精妙
  • 原文地址:https://www.cnblogs.com/fighter007/p/8268314.html
Copyright © 2011-2022 走看看