大家好!今天我们发布了《全民一起玩Python 基础篇》的第十一回 “入列表五湖四海皆兄弟,for循环一步一人无漏缺”,同时在 www.ukoedu.com 中上传了笔记、参考资料以及4道练习题。

不过尽管在本节视频中已经讲过,杨老师还是希望在公众号里向大家再次强调一个重要问题:Python里的 for in 循环 (相当于VBA中的 For Each 循环)只宜用来读取元素、不宜用于修改列表(或数组等)元素!而这个问题无论对于Python的for in循环,还是对于VBA中的For Each循环,道理都是一样的。

之前就有同学通过公众号向杨老师问过相关的问题,如果在一个for in 循环的循环体里修改了循环变量数值,那么最终输出是什么?不过由于微信并非我们的答疑平台,所以等杨老师注意到这个问题时,该消息已经过期无法回复。所以还是建议大家有问题到论坛 forum.yycollege.com 提问,或者在Q群中向其他同学请教。

言归正传,请大家看看下面这个代码运行的结果是什么(左边为Python,右边为VBA):

可能有些同学会觉得,这个程序输出一个 “1” 之后,就会停止循环并结束,因为第一次循环后 i 就变成了100,超出了预定的循环范围。

不过实际运行就会发现,这个程序忠实的循环了4次,依次输出 1、2、3、4,似乎完全没有受到 i=100 这句代码的影响!

为什么会这样?关键就在于 for in 循环 (For Each In 循环) 的含义:它的功能是把列表中的每个元素依次取出并赋值给 i,而不是像VBA中的 For i=1 to 4 那样指定 i 的变化范围!

所以,第一次循环时 i 的数值等于列表中的第一个元素 1 ;然后即使我们把 i 修改为 100,再次循环时,for 还是回到列表中,取出第二个元素再次赋值给 i ,使之从100又被改成了2,如此类推。因此 i = 100 并没有影响到循环的次数。

反之如果我们在VBA 的 For i=1 to 4 这种循环里写上 i=100 ,就会导致循环提前结束,因为再次回到For语句时VBA只检查此时的 i 是否已经超出了预先指定的上限 4 ,超过则退出。

同样的道理,使用 For Each 或 python 的 for in 循环可以将列表元素的数值赋值给循环变量(比如前面例子里的 i ),但却不能通过 i 来修改列表的元素。比如下面的程序里:虽然每次循环都有 i = i + 1, 但是修改的只是变量 i 的值 —— 让 i 的值从“等于列表中某元素” 变化为 “列表中某元素多 1 ”,而 “列表中的某元素” 却从未被赋值修改过。所以在循环结束后,查看列表会发现没有任何变化。

那么怎样能够修改列表中的元素呢?答案就是使用 while 循环或VBA中的 For Next 循环,通过下标直接引用列表元素并修改!

以上这些内容对VBA的For Each循环同样适用,我们在本节以及下周即将发布的课程里都会用视频案例强调讲解,请大家特别记住!

先写到这里吧,再有几分钟就是GoT最后一季,杨老师终于也要感受到大家追剧催更的痛苦了!

vba 修改文本文档 指定行_再说For Each循环——无论Python还是VBA都要看相关推荐

  1. vba 修改文本文档 指定行_VBA程序报错,用调试三法宝,bug不存在的

    如果把VBA比作一门刀法,那么经过前面内容的操练,大家已经掌握了很多实用的招式. 如果我们在刀法招式的基础之上,再掌握更多的"磨刀"心法,那么我们的刀用起来才会又好又快. 所以今天 ...

  2. axure原型怎么让文字自动换行_文本文档怎么创建_文本文档怎么自动换行的方法...

    在处理各种工作的时候,文本文档都是比较常见的使用工具,尤其在电脑工作者的日常工作中,这些都是不可或缺的,经常需要保存一些临时的文档或者是文本文件,那么在保存的时候要选择先建立文本文档,那么文本文档怎么 ...

  3. 在线文本文档txt编辑器_审查了6位在线文档和文本编辑者

    在线文本文档txt编辑器 Who wants to limit himself to one computer nowadays? Say hello to online editors, where ...

  4. 准时下班系列_Excel合集之第9集—VBA导入文本文档数据

    Hi,各位同学好!我是吴明课堂的答疑老师之一陈婉.祝大家一切顺利,平安快乐! 工作场景描述: 前几天有位同学说,他们公司需要分析系统产生的日志文件(.LOG格式,Ps. TXT格式文档解决方式与log ...

  5. 用python将中文/汉字写入文本文档或者从文本文档读取中文信息

    用python将中文/汉字写入文本文档或者从文本文档读取中文信息 经常有同学碰到通过python无法将汉字信息写入文本,或者无法读取文本里的汉字信息的情况,下面用一种最简单的方式解决这个问题. 写入文 ...

  6. 文本文档TXT每行开头结尾加内容批处理代码

    文本文档TXT每行开头结尾加内容批处理代码 读A.TXT ,每行开头加:HTMLBodytxt = HTMLBodytxt + chr(10) aaaaaaaa 结尾加:bbbbbbbb 处理后的文档 ...

  7. 文本文档代码大全简单_简单4步搞定PC版微信多开,不再重复切换

    现在微信已经成为工作.学习中不可或缺的社交沟通工具,而很多人也不止拥有一个微信号.目前很多手机厂商都自带了应用双开的功能,所以在移动端这个问题已经被满足了,那么在电脑端呢?即使现在有很多辅助多开的工具 ...

  8. bat 删除文件_利用电脑文本文档建立一个简单方便的删除文件的小程序

    删除文不需要的文件或者资料,是日常工作中必定会遇到了. 各种的杀毒软件或者防护软件都具备删除文件的功能,例如360.腾讯电脑管家.这些操作起来其实也不是太麻烦! 不过呢!今天来和大家分享一个更简单的方 ...

  9. vs 如何将源文件转换成可执行文件_如何将手机便签转换成word文本文档

    如何将手机便签转换成word文本文档?实际上,很多手机自带的便签,虽然可以将单条便签内容,以文字或者图片的形式分享到xxx云文档,但却很少有支持直接转换成Word文档的.一般情况下,他们需要将手机便签 ...

最新文章

  1. js通过正则表达式解析xml 获取指定的内容
  2. Spring Boot 添加拦截器的配置方式
  3. python代码转成java_如何实现Java代码转换成python代码
  4. 黎曼猜想的1/2和质子自旋的1/2会不会是一个数?
  5. 限制部分Postfix用户只能内部收发的例子(完整版)
  6. python的os模块基本使用
  7. 2013_chengdu_onsite
  8. 矩阵每一行重复_【剑指offer】65 矩阵中的路径
  9. 知道吗?滚还是不滚的问题和信息论有关!
  10. mac mysql root不能登陆_Mac下新安装的MySQL无法登陆root用户解决方法
  11. element时间范围选择添加限制条件
  12. 【python路上小记】匹配11位电话正则表达式
  13. ShadowGun 图形技术分析
  14. 坐标测量机的定位误差和测长不确定度有何区别,如何表示?
  15. 剖析 Microsoft.AspNetCore.Identity 的精髓 —— 前言
  16. Python实现图形界面猜数字游戏(GUI)
  17. pfv和php,【Retina China 2019】工欲善其事必先利其器——影像学在眼底病中的应用与发展...
  18. 谈谈我对云原生与软件供应链安全的思考
  19. 摘抄整理-20161115-程序员思维修炼
  20. 创意svg加载loading小猫动画

热门文章

  1. GPS定位可以使用物联卡吗?信号稳定吗?
  2. hashmap储存有向图_HashMap的存储结构及原理
  3. interop.cdo 发送邮件乱码_手把手教你用 Java 发送邮件,不用框架
  4. 计算机专业知识笔记,事业单位计算机专业知识重点笔记
  5. excel能创建html吗,如何通过Excel电子表格使用循环创建单独的HTML发布页面
  6. leetcode 21 java_LeetCode 21. 合并两个有序链表
  7. winapi里的createthread函数 和linux,Windows API---CreateThread函数
  8. R语言︱H2o深度学习的一些R语言实践——H2o包
  9. [Ting's笔记Day9]活用套件Carrierwave gem:(4)使用Imagemagick修改图片大小
  10. SpringBoot使用@Asyn注解注意事项