最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 手把手教你使用python中的循环for和while

    正文概述    2020-05-11   394

    手把手教你使用python中的循环for和while

    python中的for循环是一个通用的序列迭代器,可以遍历任何有序的序列对象内部的元素,(注意是遍历),也就是说循环的方式一开始就固定好了,本质上是遍历。

    python:代码

    count = 0for i in range(8):    if i % 2 == 0:
            i += 2    print(i, end=' ')
        count += 1print('\n总次数',count)

    返回结果

    2 1 4 3 6 5 8 7 
    总次数 8

    我的本意是想让这个程序遇到偶数跳两个,很显然,它还是执行了八次

    而c++代码就可以用for实现这个功能:

    for(int i = 1; i<=8;i++)
            {
                if(i%2==0){
                   i += 2; 
                }
                cout<<i<<' ';
            }

    结果为

    1 4 5 8

    python里要简单的实现上述功能,则需要用while了。

    总结: 里的  只是对一个有序序列的遍历

    深层次原因:

    python 中的for循环实质上是一个迭代器,迭代器在一个独立的线程中工作,并且拥有mutex(互斥)锁,即只有一个进程能访问这个可迭代对象。

    当迭代器被创建时,在这里是,它生成一个内存索引表,这个表指向可迭代对象,在这里是range(8)。当i改变时,因为mutex锁的原因,这个索引表的内容并没有同步改变。也可以说成,此非彼。

    但是如果是引用,那没有问题,这也很容易理解,比如在循环里打印print(i+2)什么的,都可以的。引用的还是那个

    当然, python中的循环也是可以改变循环次数的,重点在这句话--这个迭代器建立的内存索引表指向一个可迭代对象。

    我们来看看列表,例如

    a= [1,2,3,4]

    这个a列表本质上是对a[0],a[1],a[2],a[4]的引用,而又因为列表本身是一个可迭代对象,所以我们改变这个列表(可迭代对象)的内部引用即可

    count = 0
    for i in a:
       a[1:] = [1]
       count += 1
    print(count)

    count 的结果为2

    而上面的\color{red}{range}我们是没办法对其内部操作的,第一个i是对内存索引表的挨个查找,第二个i是新的对象

    而对于列表,我们直接改变了可迭代对象的结构,也就是说内存索引表本身发生了变化。

    while

    Python中的while循环是当条件满足时,便一直执行,当条件不满足时,会停止

    例如

    while True:
        print(1)

    上面例子就是一个死循环。


    起源地下载网 » 手把手教你使用python中的循环for和while

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元