Python数据可视化之美:专业图表绘制指南(全彩)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 控制语句与函数编写

1.3.1 控制语句

Python语句与R、C++语言类似,其控制流语句同样包括条件、顺序和循环等。我们可以利用这些语句控制数据分析的流向。与其他语言不同的是,控制流语句是以“:”和缩进来识别与运行代码块的(见表1-3-1)。

表1-3-1 控制语句

我们最常见的就是if条件语句。条件语句可以使程序按照一定的表达式或条件,实现不同的操作或执行顺序跳转的功能。其条件最基本的检查包括等于(=)、小于(<)、小于或等于(<=)、大于(>)、大于或等于(>=)和不等于(!=)。在Python中可以将产生一个值的if…else语句写到一行或一个表达式(三元表达式)中,以下为两种不同形式的三元表达式:

for循环可以对任何有序的序列对象(如字符串、列表、元组、字典等)或迭代器做循环和迭代处理。其中,range()函数可以产生一组间隔相等的整数序列,可以指定起始值、终止值与步长,常用于for循环。

while循环可以对任何对象进行循环处理,只要条件不为false或者循环没有被终止(break),其代码块就一直不断地执行。如果while循环中有else语句,则else语句会在循环正常结束之后执行。

在for和while循环中,用户还可以使用特定的语句对循环进行中止(continue)、终止(break)等控制。常用的有如下两种。

● break:结束或终止循环;

● continue:中止当前循环,调到下一次循环的开始。

推导式(comprehensions)是一种将for循环、if表达式以及复制语句放到单一语句中产生序列的方法,主要有列表推导式、集合推导式、字典推导式等。其中列表推导式只需要一条表达式就能非常简洁地构造一个新列表,其基本形式如下:

● [执行语句for value in集合] #使用执行语句生产列表

● [执行语句for value in集合if条件] #根据一定条件生产列表

例如:

1.3.2 函数编写

函数(function)是Python中最重要,也是最主要的代码组织与重复使用的方法。Python本身内置许多函数,如range()函数,也可以通过导入包或者模块的方法调用函数,另外也可以灵活地自定义函数。默认情况下,实参与形参是按函数声明中定义的顺序匹配的。调用函数时可以使用的正式参数类型主要有必备参数、命名参数、缺省参数、不定参数等。其中,必备参数要以正确的顺序把参数传递给函数,调用时的数量必须和声明时的一样;命名参数以参数的命名来确定传递的参数值,可以跳过不传的参数或乱序传递参数。

匿名函数(lambda)仅由单条语句组成,该语句执行的结果就是返回值。其省略了用def定义函数的标准步骤,没有名称属性。其一般形式如表1-3-2所示。

表1-3-2 Python函数的常用方法

lambda函数能接收任何数量的参数,但是只能返回一个表达式的数值,不能同时包含命令或者多个表达式。调用函数时不占用栈内存,从而增加运行效率。

内置函数是Python内置的一系列常用函数,无须导入包或者模块即可直接使用(见表1-3-2)。Python有3个常用的内置函数,可以实现序列的遍历与处理,提高数据分析的效率,如filter()、map()和reduce()函数。filter()函数的功能相当于滤波器,调用一个布尔函数遍历序列中的每个元素,返回一个能够使布尔函数数值为ture的元素的序列。map()函数可以指定函数作用于给定序列的每个元素,并用一个列表来提供返回值。reduce()函数作为参数的func函数为二元函数,将func函数作用于序列的元素,连续将现有结果和下一个元素作用在随后的结构上,最后将简化的序列作为一个单一返回值(注意:Python 3已经移除reduce()函数,放入functools模块:from functools import reduce)。