流程控制
流程控制
流程控制指的是代码运行逻辑、分支走向、循环控制,是真正体现我们程序执行顺序的操作。流程控制一般分为顺序执行、条件判断和循环控制。这里面体现了一种传统编程中的“因果关系”,也就是有什么样的因就产生什么样的果,有什么输入就会有相应的输出,同一个输入不管执行多少次必然得到同样的输出,所有的都是确定的、可控的。与之相对的则是最近火得一塌糊涂的人工智能,比如机器学习、神经网络和深度学习,这些不再是“因果关系”编程,而是“统计关系”编程,同一个输入每次的执行结果有可能不一样。
作为所有编程语言里相似度或者说通用性最大的一部分内容,流程控制对于老手来说是最简单的一章,基本可以忽略的一章。但对于新手来说,却往往成为最困惑的一章。为什么会这样?因为很多新手还没有养成编程语言的逻辑思维,对‘因果关系’体会不深,稍微复杂一点的控制逻辑就会大脑混乱一团麻。然后嘛,对于写伪代码或者画流程图这一类对理清逻辑关系非常有帮助的工作,又不愿意做,直接导致整个程序的控制流程混乱,而这一类问题又是老手最不愿意回答的问题,费时费力。
伪代码
伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 通俗简单地讲,就是用中文把你的程序先写出来,在检查过伪代码没有问题后,再用Python等语言将其真正实现。例如:
输入一个变量age
将输入字符串转换为数字
(条件判断:)
如果age大于等于18:
打印“成人”
如果age小于18,又分两种情况:
如果age大于等于12:
打印“少年”
如果age小于12:
打印“儿童”
上面就是一个简单的伪代码。伪代码没有任何的书写规则,只要逻辑清楚正确,怎么写都由你。将上面的伪代码,实现成真正的Python代码,如下:
age = input("请输入你的年龄:") age = int(age) if age > 18: print("成年") else: print("未成年")
以上实例输出结果:
请输入你的年龄:20
成年
当然,上面的代码有很多问题,比如int转换过程中可能的问题,if、else可以用elif更精简一下。但这些都不是我们现在讨论的重点,我们现在说的是伪代码。
流程图
再简要介绍一下流程图。程序流程图和伪代码在本质上其实是一样的,只不过一个用文字表达一个用图片表达,图片画着费点事,但看着直观,文字书写方便,但不够直观。
在程序流程图绘制过程中,主要使用下图中的图标:
通过带方向的箭头和相应的说明文字,连接各图标,形成了流程图,例子如下: