控制语句 Python 语句与 R、C++语言类似,其控制流语句同样包括条件、顺序和循环等。我们可以利用这些语句控制数据分析的流向。与其他语言不同的是,控制流语句是以“:”和缩进来识别与运行代码块的(见图)。 我们最常见的就是if条件语句。条件语句可以使程序按照一定的表达式或条件,实现不同的作或执行顺序跳转的功能。其条件最基本的检査包括等于(=) 、小于(<)、小于或等于(<=)、大于(>)、大于或等于(>=)和不等于(!=)。在 Python 中可以将产生一个值的 if…else 语句写到一行取一个表达式(三元表达式)中,以下为两种不同形式的三元表达式 output= ‘Yes' if i>3 else'No' output=('No',’Yes’)[i>3] 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 条件]#根据一定条件生产列表 例如: output=[i+10 for i inrange(1,5)] #output=[11,12,13,14] output=[i+10 for i in range(1,5)if i>2] # output= [13, 14] 函数编写 函数(function)是 Python 中最重要,也是最主要的代码组织与重复使用的方法。Python 本身置许多函数,如 range()函数,也可以通过导入包或者模块的方法调用函数,另外也可以灵活地自义函数。默认情况下,实参与形参是按函数声明中定义的顺序匹配的。调用函数时可以使用的正参数类型主要有必备参数、命名参数、缺省参数、不定参数等。其中,必备参数要以正确的顺序参数传递给函数,调用时的数量必须和声明时的一样;命名参数以参数的命名来确定传递的参数值可以跳过不传的参数或乱序传递参数。 匿名函数(lambda)仅由单条语句组成,该语句执行的结果就是返回值。其省略了用def定义函数的标准步骤,没有名称属性。其一般形式如下图所示。 lambda 函数能接收任何数量的参数,但是只能返回一个表达式的数值,不能同时包含命令或者多个表达式。调用函数时不占用栈内存,从而增加运行效率。 内置函数是 Python 内置的一系列常用函数,无须导入包或者模块即可直接使用(下图)Python 有3个常用的内置函数,可以实现序列的遍历与处理,提高数据分析的效率,如 flter()、map()和 reduce()函数。fflter()函数的功能相当于滤波器,调用一个布尔函数遍历序列中的每个元素,返回一个能够使布尔函数数值为ture的元素的序列。map()函数可以指定函数作用于给定序列的每个元素,并用一个列表来提供返回值。reduce()函数作为参数的func 函数为二元函数,将func 函数作用于序列的元素,连续将现有结果和下一个元素作用在随后的结构上,最后将简化的序列作为一个单一返回值(注意ython3已经移除reduce()函数,放入functools 模块:from functools import reduce )。
|