在阅读本文时,我们假设您有任意一门编程语言的最基本的经验,至少了解数据类型、变量、条件判断等基本概念。如果连这些概念都没有,我们将在本章对此进行简单的介绍。UiBot 需要的编程基础非常少,也非常容易学,所以,不必担心,耐心读完、理解本章所讲的概念,就已经足够了。
当然,如果您有编程基础,那么本章的内容完全可以不用阅读。
我们首先来看一张Excel表格。这张表格中的内容是完全虚构的,我们用它来解释下面的几个概念。
- 数据
RPA 的主要工作通常就是在处理各种数据,什么是数据呢?我们设想有一张 Excel 表格,里面的很多格子已经填写了内容,这些内容都是数据。数据是计算机和人类之间交换的信息。
实际上,数据还可以细分为结构化数据和非结构化数据。像这种整整齐齐的写在一个个格子中的,显然是结构化数据。我们需要接触到的大多数数据也都是结构化数据,所以用这个表格来理解数据的概念就够了。
- 数据类型
在一般的编程语言中,都会把数据分为若干种不同的类型,常见的数据类型包含数值型、字符串型、布尔型等等。
数值型就是数字,可能是整数,也可能包含小数位(在计算机中一般称为浮点数),比如实例表格中的“订单数量”、“销售额”等等;字符串型通常是一串文字,通常会用双引号包起来,以示区别;布尔型只有“真”和“假”两个值,当然也经常被称为“是”和“否”、“True” 和 “False” 等,内涵都是一样的。
如何区分这几个数据类型呢?一般来说,数值型是可以加减乘除的;字符串通常只会连接,而没有其他运算;布尔型通常只有“与、或、非”等逻辑运算。比如表中“顾客姓名”一列的数据,做加减乘除和逻辑运算都是没有意义的,所以应该是字符串类型,写的时候要加一对双引号,如"李鹏晨"
。
表中“订单号”一列的数据,本质上都是数字,可以加减乘除,但他们的加减乘除并无意义。所以既可以按数值型处理,也可以按字符串型处理,设计者可以根据需要酌情考虑。
- 变量
在上面的 Excel 表格中,每个数据都是保存在一个小格子当中的。而且,Excel 给每个小格子都设定了一个名字,比如261.54这个数据所占用的格子,就被称为D2。这个格子里面的数据可能会改变,比如销售额可能会发生变化,但是,这个格子的名字,D2,是不变的。我们在Excel中只要取D2这个格子里面的数据,就可以取得其中最新的值。
“变量”是编程中一个常见的概念,和Excel中的格子一样,变量也相当于是一个格子,里面可以存放数据。变量也有名字,可以通过名字取得变量中保存的数据,也可以通过名字对变量“赋值”,也就是设置变量中保存的数据。
Excel中的格子命名都是“字母+数字”的形式,而编程语言中的变量命名会灵活很多,可以是一个很长的英文单词,或者用下划线连接起来的好几个单词,有的编程语言,包括 UiBot 所使用的编程语言,还可以用汉字来命名变量。一般推荐把变量的命名设置的略长一些,最好是有意义的单词或词组,而不是像 D2 这样的“代号”。这主要是为了让我们在阅读的时候看得更清晰,对程序的运行并没有影响。
- 表达式
变量和变量之间、或者变量和固定的数据之间,都可以进行运算,它们运算的算式被称为“表达式”。由于变量的值可能会发生变化,所以表达式的值也可能会发生变化。在编程语言中写一个表达式以后,只要当运行到了表达式所在的这一行,才会去根据变量里面保存的数据,去计算表达式的值。
比如,x + 2
就是一个表达式,当我们不能确定x
的值的时候,就不能确定这个表达式的值。如果在运行到这一行的时候,发现x
的值是3,那么x + 2
的值就是5。
当然,有的运算是没有意义的,比如我们对一个字符串做除法,就是没有意义的。但由于我们在书写表达式的时候,变量的值还没有确定,可能无法马上确定这个表达式有问题。到运行到这一行的时候,计算机才发现表达式有错,无法继续运行下去了,通常会报错并退出。
- 条件判断
在编写一段程序的时候,我们通常会一行一行的去写。在程序运行的时候,通常也会按照从上到下的顺序,一行一行的运行。当然,这种运行方式是不够灵活的,我们常常希望能在运行的时候判断某个条件,然后根据条件,决定是否要执行某一段语句。这就是条件判断语句。
条件判断语句在不同的编程语言中有不同的写法,但其大致形式通常都是一样的:
如果 <表达式> 则
语句1
语句2
条件判断结束
其含义是,在运行到“如果”那一行的时候,会计算其中的表达式的值。这个表达式的值应该是布尔类型,如果不是,通常会自动转换为布尔类型。计算机会根据这个表达式的值,来决定要不要运行被“如果”和“条件判断结束”所包夹的语句,也就是例子中的语句1和语句2。只有当这个表达式的值为“真”的时候,才会运行它们,否则,会跳过它们。
我们在程序中会经常遇到条件判断语句,比如如下的程序:
发送邮件
如果 发邮件没有成功 则
给用户报告没有成功
条件判断结束
只要正确的填写“如果”这一行中的表达式,使其在“发邮件没有成功”的时候为真,在“发邮件成功”的时候为假,就能达到我们的目的。反之,通常条件判断语句没有写好,其实也都是表达式没有设定好。在这个例子里面,通常“发送邮件”语句会给一个变量赋值,告诉我们是否发送成功,我们只需要把这个变量置入“如果”这一行的表达式中,即可奏效。
- 循环
循环语句和条件判断语句的形式比较接近,通常是:
当 <表达式> 的时候循环
语句1
语句2
循环结束
和条件判断语句类似,在运行到“当XXX的时候循环”时,也会先计算其中的表达式的值,如果表达式的值为“假”,会跳过这个循环,直接运行“循环结束”后面的语句。但和条件判断语句最大的不同是,如果表达式的值为“真”,会在运行完后面的语句1和语句2以后,再次跳回“当XXX的时候循环”这一行,重新判断表达式的值。
这样一来,就可以用循环语句,让计算机来做重复性的工作了。比如如下的程序:
发送邮件
当 邮件没有发送成功 的时候循环
再尝试发送邮件
循环结束
当邮件没有发送成功的时候,这个程序会反复尝试,直到邮件发送成功为止。当然,和条件判断语句类似,循环语句里面最关键的还是如何正确的设置这个表达式。如果设置的不好,表达式始终为“假”,则有可能程序在这里一直循环,不会再往下运行,也不能结束,这种情况叫“死循环”。
返回目录
注: 上述内容经 UiBot 官方 授权发布,版权归 UiBot 官方所有,如需转载请先联系。
更多 RPA 相关的资讯,请关注公众号:流程自动化机器人教程
由于禁止直接在文章中插入公众号二维码,请点击 这里 了解添加该公众号的细节。