11
2019-07
文科生带你学Python|分支VS循环
分支&循环是程序结构控制的核心,不管学习哪种编程语言,程序的结构控制都是非常重要的。
LEARN MORE
图片来自网络,如侵删
I——P——O
上一节中,以1加到100为例讲了一下伪代码是什么。大家可能已经发现了,这种解决问题的方法和我们过去在处理这个问题的思路方法有着比较大的区别,你或许可以看懂上一节伪代码的讲解中用的办法,但是让你用类似的办法去处理另一个问题可能依然会觉得很困难(比如从1乘到100)。
这其实就是思维习惯的差异,想要习惯一种全新的思维方式确实是需要花费一定的时间和精力的,其实不管是理科生还是文科生,这种思维的方式转换的困难都是一样存在的,所以,不要拿文科生作为你拒绝编程的借口。
编程语言是人和计算机进行交流的语言,就如同我们和孩子交流的时候会尽量用孩子能理解的语言一样,我们在和计算机交流的过程中,由于我们无法要求计算机用人类的思维方式进行思考,于是就只好将我们想要的东西以计算机可以理解的思维方式告诉计算机。
计算思维是区别于逻辑思维和实证思维的第三种思维方式,掌握这种思维方式可以从IPO方法入手(不是上市那个IPO):
I(input)输入
P(process)处理(算法)
O(output)输出
在进行编程的时,需要记住,不管是什么样的程序,不论长短,其实都是输入、处理、输出三个部分。
计算机都是死脑筋
上一节在介绍语法规则的时候讲了一个点叫做顺序执行,不知道大家有没有注意到这个细节,可能你会觉得这是一句废话,但其实这个问题吧,不止是编程,生活中也有用处(妹子们特别注意了):
老婆:去买两斤饺子皮,如果没有就买馄饨皮
老公出去了一趟之后两手空空地回来了
老婆:你怎么啥都没买就回来了
老公:店家还有五斤饺子皮,所以我没买啊~
虽然生活种不太可能发生这么脑残的事情,但如果这是编程的世界里,这很有可能就真的发生了:
老婆表达的意思:
if 饺子皮>2斤
then 买两斤饺子皮
else 买两斤馄饨皮
老公的理解:
if 饺子皮=2斤
then 买两斤饺子皮
elif 饺子皮<2斤
then 买两斤馄饨皮
然后老公到了店里之后发现
input 饺子皮>2斤
未命中任何判断条件
回家
其实我们的自然语言是非常不严谨的,如果你接触过逻辑学关于形式逻辑的相关内容就会更有体会。在我们和计算机交流的时候这一点特别需要注意,表达意思的时候一定要非常清楚,否则程序的运行就会出错。
这种需要根据条件进行判断选择执行不同动作的场景在程序编写种非常场景,专业一点就叫做分支控制。
老婆:让你买东西啥都没买回来,罚你去剥蒜,剥50个
三个小时过去了,老公一动没动
老婆:你为啥不动?
老公:家里的蒜不够50个
老婆:(MMP我还治不了你了?)
给定一个计数器i,初始令i=0
while i <=50
剥一颗蒜
i=i+1
这就属于循环控制,重复执行一个动作,直到满足我们要求的特定条件,跳出循环。
Python代码实现
判断语句
Python中判断语句遵循以下的格式:
if 判断条件: 执行语句……
else: 执行语句……
注意:
下面来一个实例
进行判断的条件可以不止一个,对于多条件的可以用elif语句进行判断,格式如下:
if 判断条件: 执行语句……
elif 判断条件: 执行语句……
elif 判断条件: 执行语句……
else: 执行语句……
(elif 就是 else if,是不是简单粗暴?相比excel函数中的层层嵌套if,这个是不是简单多了?)
条件语句
Python中条件语句可以分为while循环和for循环两类,分别遵循以下的格式:
while 判断条件: 执行语句
for 变量 in 区间: 执行语句
for循环和while循环在使用的时候有一些小的区别,看流程控制图可能反而容易把大家带坑里,给大家教一个小的技巧,直接读英文的意思,while循环就是当条件满足开始执行,for循环就是逐个执行某一个区间中的值。
while循环中,除了上面例子里的和else连用,还可以和countinue和break语句连用