本文简要介绍Visual Basic 6.0与Python 3.x的循环结构以及将两者做简明对比,梳理其中的循环逻辑。

一、自然简洁的表达方式

我们从Python中的While语句讲起。While语句在Python中成为无限循环或条件循环,其语法很简单While :

先判断条件,当条件判断为True时,执行循环体语句块中的语句,然后再次判断条件,若为True,再次执行循环体……直到判断条件为False时,循环终止,执行与While同级别缩进的后续语句。

其等同于VB中的Whlie…Wend语句While

Wend

Python中的While语句和VB中的While…Wend语句是最自然,最一般的循环结构表达方法。掌握此就足够写出几乎所有的循环程序了。

二、花哨的Do…Loop语句

但是,为什么我们会听到前测型后测型、当型直到型这样复杂的复杂的名词呢?

我们首先来看一下这些名词的定义,以自然语言的句意来理解它们。

若条件成立则执行循环体的循环为当型循环。

若条件成立则终止循环的为直到型循环。

先判断条件再决定是否执行循环体的是前测型。

先执行循环体再判断条件决定是否继续下次循环的为后测型。

由此我们可以看出,上文介绍的While语句和While…Wend语句都属于当型前测型循环。

直到型循环相当于在当型循环的条件处加了一个非门,可以更直观地称作当否型,其实两者表达能力是一样的,我们可以将两者互相转化。

对于当型(或直到型)前测型循环,若条件一开始就不成立(或成立),那么循环体一次也没有执行,即可以实现循环次数为0。

对于后测型循环,无论条件如何,循环体都要先执行一次。因为在同一次循环中,判断循环条件放在执行循环体之后,而条件是否成立影响的是下一次循环是否执行。后测型循环至少要执行一次循环体,不能实现循环次数为0的情况。故表达能力要弱于前测型循环。后测型循环可以嵌套进分支选择结构(If语句)来提升表达能力至和前测型相当。(先用If来判断条件来决定是否进入循环语句)

在VB的Do…Loop语句家族中,当型前测型为Do While…Loop,直到型前测型为Do Until…Loop,当型后测型为Do…Loop While,直到型后测型为Do…Loop Until,其中Do While…Loop和While…Wend是等同的。

而Python中就没有这么多花哨的表达方式,一句While走遍天下。

三、特殊表达方式

接下来我们介绍步长循环与遍历循环。

对于要已知循环次数的情景,VB和Python中都提供了更为方便的表达方式,即VB中的For…Next语句步长循环和Python中的for语句遍历循环。For = To [Step 步长]

[Exit For]

Next

执行步骤:

(1)首先将循环变量设置为处置。

(2)判断循环变量的绝对值是否超过终值的绝对值,如果是,则退出循环,执行Next语句之后的语句,否则继续第3步。

(3)执行循环体部分,即执行For语句和Nex语句之间的语句组。

(4)将循环变量加上步长并赋值给循环变量自身

(5)返回第2步继续执行

由此一系列操作,其实是实现了次数为Int((终值-初值)/步长+1)的循环(Int函数是返回不大于参数的最大整数)。但是与“机械地重复循环体一定次数”不同,此语句中地循环变量与循环体不是独立存在的,我们可以在循环体中引用循环变量。

翻译成While…Wend语句是(根据VB语法,循环变量应先定义其数据类型) =

While Abs() <= Abs()

i = i +

Wend

类似地,在Python中有for语句遍历循环for in

句意是从遍历结构中逐一提取元素,放在循环变量中,对于所提取的每个元素执行一次循环体。同样地,我们也可以在循环体中引用循环变量。如果要实现执行循环体N次,我们可以将Range(N)函数放入遍历结构中,这样就可以翻译成While语句 = 1

While <=

= + 1

但是,for语句遍历循环的遍历结构可以是字符串、列表、文件,也就是可以实现步长不固定的、循环变量不是数学数值的、甚至遍历文件中每一行的循环,这是While语句所不能实现的。这就是for语句遍历循环的特殊之处。

参考文献

[1]刘何兵;席磊.Visual Basic程序设计[M].北京:中国农业出版社.2017.08

[2]嵩天;礼欣;黄天羽.Python语言程序设计基础[M].北京:高等教育出版社.2017.02

分类:

标签:

python与vb相结合_VB与Python的循环结构相关推荐

  1. vb还是python强大-VB已死,Python当立 | 忆云竹

    据澎湃新闻近日消息,山东省在其最新出版的小学信息技术六年级教材中,加入了Python的内容.在此之前,编程界也一直有传言,称浙江省将对中学信息技术教材进行改动,弃VB(Visual Basic 6.0 ...

  2. 以下构成python循环结构的方法中_《Python程序设计与案例教程》课件chap5循环结构程序设计.ppt...

    5.4 循环控制语句 有时候我们需要在循环体中提前跳出循环,或者在某种条件满足时,不执行循环体中的某些语句而立即从头开始新的一轮循环,这时就要用到循环控制语句break.continue和pass语句 ...

  3. 1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

    总体说明:本套PPT共约1900页,包含董付国老师Python系列图书<Python程序设计基础>(2017年7月第5次印刷).<Python程序设计(第2版)>(2017年9 ...

  4. python调用vb文件_vb能配合python写程序么?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #自定义结构的传递的确比较麻烦,如果找到更好的方法,请务必告诉我 class ReadMail: _public_methods_=['Read_mail ...

  5. Python—语法基础(8) 分支、循环结构

    分支紧凑格式:<表达式1> if <条件> else <表达式2> # 分支结构 if <条件1> :<语句块1> elif <条件2 ...

  6. Python提取.ipynb文件中的Python代码保存为.py文件

    封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答案.课堂管理 ...

  7. Python借助百度搜索引擎爬取Python小屋密切相关文章

    封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 ============= 第一步,查看本机Chrome浏览器版本. 第二步, ...

  8. Python学习教程(Python学习视频_Python学习路线):Day04循环结构

    Python学习教程(Python学习视频_Python学习路线):循环结构 循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入 ...

  9. vb、java、python那个与c一眼相近_vb c语言 python 哪个好点

    点击查看vb c语言 python 哪个好点具体信息 答:每种语言的侧重点不同,不存在哪种好,哪种不好,只有适应的场合不同. VB属于入门语言,比较容易上手,适合开发小型的程序,擅长于对office的 ...

最新文章

  1. vim介绍,vim颜色显示,vim一般模式下移动光标,vim一般模式下的复制、剪切和粘贴...
  2. springboot redis 刷新时间_「SpringBoot实战」SpringCache + Redis实现数据缓存
  3. 1.16.Flink Window和Time详解、TimeWindow的应用、Window聚合分类之全量聚合、全量聚合状态变化过程-求最大值、Time介绍、EventTime和Watermarks等
  4. spring boot web项目_阿里技术专家带你使用Spring框架快速搭建Web工程项目
  5. 操作系统之文件管理:7、文件共享与文件保护(软连接、硬链接、口令保护、加密保护、访问控制)
  6. python3 json_python3 json模块
  7. electronic-wechat高分屏下的缩放修改
  8. Linux系统日志及screen工具
  9. java获取outlook 日历,Outlook 日历 API 概述
  10. 在那海的那边,山的那边,有一条蓝鲸鱼----它的名字叫Docker!!
  11. 写得太好了,关于《越狱》的影评(转贴)
  12. Centos7系统启动盘的正确安装姿势
  13. QQ相关(一)【导出所有QQ好友】
  14. Http协议之Referer
  15. _tsplitpath_s(分解路径)
  16. python serial.write_PySerial write()即时时间
  17. 公务员备考(四十) 图推提升
  18. Metasploit学习笔记(七)——Meterpreter后渗透之传统MS08-067漏洞利用(没成功)
  19. Spring AOP 切面@Around注解的具体使用
  20. 可怕!女子家中摄像头无人操作却自己动起来

热门文章

  1. 将Excel数据导入SQL数据库
  2. 自己动手将艺术照变成证件照
  3. Windows沙拉:为什么下载的文件打开时会有警告,而且会被“锁定”?
  4. linux 中的指令
  5. 【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具
  6. 积极废人:只要人生中有捷径,捷径很快就成了唯一的路
  7. GET和POST的使用
  8. 感谢一起合作的小伙伴
  9. 离散实验偏序关系满足实验报告C语言,离散数学实验三
  10. Word 公式编辑器 上下标