新手课堂 - 透过王二的一生说“流程控制”(一)

人生是美好的,所以村口的王二麻子现在坐在自家门口倚着墙回忆这一大半辈子,从垂髫稚子到青葱少年,从蓬勃青年再到如今大肚便便,对于自己放弃一切重新回到村里,他不后悔,反而如释重负,欣然间不由地幻想着以后,直至自己老了要过上什么样的安然日子。
今天就想写个帖子谈谈王二麻子的故事,啊不,是说说流程控制:IF 分支、While 循环、For 循环、Break 中断、Continue 继续、Try 异常、Return 返回以及序列

1. For 循环

可以遍历任何序列的集合项目,如一个列表、一个字符串、或是 DataFrame 数据集,主要用于对同样的执行步骤进行循环执行处理。

王二麻子将自己人生用元组概括为 5 个阶段: (‘幼年’,‘少年’,‘青年’,‘中年’,‘老年’) ,当然也可以是列表 [‘幼年’,‘少年’,‘青年’,‘中年’,‘老年’] 等那样的集合项目,但他就这么想了,没办法。
此刻他脑子按照元组的顺序,从小到大地回忆那些时光后,又不禁想象着自己以后老了的光景,这一辈子,也算是没白活一场吧。
新手课堂 - 透过王二的一生说“流程控制”(一)

当然,For 循环中的元素和集合也可以使用变量来传递,只需要设置即可。
这里再介绍下 range 方法,可以用来设定循环的次数,例如:range(5) 便是循环 5 次,实质上 range 方法得到的是一个列表,即 range(5) = [0,1,2,3,4],在 For 循环中依次读取 0,1,2,3,4,从而实现 5 次循环。
新手课堂 - 透过王二的一生说“流程控制”(一)
range 方法中,还可以使用 len 方法,获取字符串、列表或元组等的长度来确定循环次数。
如:range(len(‘abcdef’))=range(6)=[0,1,2,3,4,5]。
总之,For 循环语句块中定义方式灵活,可直接调用数据变量的一些方法。甚至通过读取 Excel 生成的 DataFrame,同样可以在 For 循环中循环处理,如下例:调用.values.tolist() 方法,生成 list 列表格式。
新手课堂 - 透过王二的一生说“流程控制”(一)
更多关于 Excel 的操作会在后面的文章中进行介绍,此处不再多叙述,还是回到王二麻子的故事上。

2. If 分支

主要用于进行条件判断,当条件满足(真)或不满足(假)时则分别执行相应的操作步骤流程。真和假后面都可以进行连线以连接相应该执行的步骤。

王二麻子脑子里在想什么,作为外人是无法知晓的,这里使用 If 分支判断,如果 pd 等于 ‘幼年’,也就是说 For 循环正好读取到’幼年’,正好满足条件,那么执行”真“后接的步骤流程,即弹出”回忆童年“的消息框;如果不符合条件,也就是说,For 循环读取到元组里其他的元素,pd 不是’幼年’,此时不满足条件,相应地就会执行”假“后面的步骤流程,即弹出”再想别的“消息框。
新手课堂 - 透过王二的一生说“流程控制”(一)

if 中可以设定很多条件的判断,这里简单的列举几个,更多的语法格式可以参考网上 python 教程:
1. if (abs is None) | (abs=='') #判断变量 abs 是否为空
2. if str.startswith(‘abc’) #判断变量 str 是否以 abc 开头
3. if len(aaa) #判断变量 aaa 是否为空
4. if str in ‘iS-RPA’ #判断变量 str 是否在字符串 ‘iS-RPA’ 中
5. if abc >=2 and abc != 4 #判断变量 abc 是否大于等于 2 且不等于 4

判断出真假并执行完相应的操作步骤流程后,程序会跳出 If 分支,继续执行后续的的操作步骤,即组件右上方所连接的步骤,如上图中黄框内的组件及后续步骤。

3.Continue 继续

用于在循环中,当某种条件满足时,跳过并进行下一次循环。

王二麻子一生沉浮,直到此刻回忆起来才发现,岁月不饶人,幼年的天真浪漫的记忆早已支离破碎,但他也不悲春伤秋,既然想不起来了童年怎样,那么去回想下一时段的记忆就好了。
也就是说,For 循环执行到此处时,需要立即跳过当前循环,不再执行循环内的后续步骤而直接进入下面一个循环。
新手课堂 - 透过王二的一生说“流程控制”(一)
所以如在上图所示的 If 分支中,条件 pd==’幼年’为真的后续步骤中,连入 Continue 继续 组件,直接跳过当前循环,不再执行黄框内及后续步骤,直接进入 pd=‘少年’ 的循环。
如你所料,Continue 继续是跳出当前循环,执行下一次循环任务,并没有跳出整个循环。后面还会讲到,在 While 循环中也是如此。

< 未完待续 >
传送门:[http://support.i-search.com.cn/article/1554259716610