
1.3 Python语言基础
本节简要介绍Python 3的基本语法,主要包括后续章节所需使用的特性。
1.3.1 常用数据类型
Python内置的常用数据类型有字符串、布尔量、元组、列表和字典。
数字(Number)包括整数、浮点数和复数类型,使用方法类似于数学计算。布尔值(Bool)有固定的表示,True表示真,False表示假。

下面重点介绍数据分析中常用的字符串、元组、列表和字典数据类型。
1.字符串(string)
字符串是由一系列字符组成的数据类型,使用一对单引号'、双引号"或三引号'''表示。字符串变量的值不可以修改,任何类型的变量都可以使用内置函数str()转换为字符串。

Python内置了字符串常用函数,支持字符串查找、替换、比较等功能。
2.元组(tuple)和列表(list)
元组和列表是有序的元素序列,具有相同的索引方式,每个元素可以是任意类型的数据。不同的是,元组的数据不可修改,列表数据可以修改。
元组使用一对()将所有元素括起来,元素的数据类型可以不同,如('Wang',32,1.67),元素本身也可以是元组。元组中的元素使用变量名[索引]来表示,索引范围[0, n-1]或[-n, -1],如图1-9所示,其中n为元素个数(也称为元组长度)。

图1-9 序列的索引


实际上字符串可以看作元组的特例,每个元素必须是字符的元组。
列表采用一对[]表示,是最灵活的序列表示形式,用来存储值需要变化的数据序列。

3.字典(dictionary)
字典是由一组“键-值对”元素组成的无序集合,字典元素的“键”具有唯一性。键和值通过冒号连接,不同键值对通过逗号隔开,如{'Wang':1.89, 'Li':1.76}。通过“键”,可以找到与之关联的“值”。

字典数据可以通过“键”方便地添加、删除和修改。

1.3.2 流程控制
1.程序格式
Python采用严格的“缩进”来表示代码的层次关系,且只能通过“缩进”表示,如图1-10所示。要求同一段程序内,每个层次“缩进”采用的空格数一致,否则判定为语法错误。

图1-10 “缩进”表示代码层次关系
2.注释
Python的注释语句有两种形式:单行注释以“#”开头,多行注释用一组"""括起来。

3.输入和输出语句
Python使用input语句将键盘输入以单个字符串保存变量,print语句实现屏幕显示。

4.分支结构
Python支持单分支结构、双分支结构和多分支结构,基本格式如下。

代码依次计算if、elif后面的表达式,执行第一个结果为真的表达式对应的分支语句。如果没有任何一个表达式结果为真,则执行else对应的语句。
5.循环结构
Python提供两种循环语句,for和while。
1)for循环在循环代码重复运行过程中,循环变量根据给定的序列依次赋值。

代码for语句循环5次,变量i依次被赋值1、3、5、7、9,并被累加到变量s上。循环结束后,s的值为25。
通常可以使用range(start,end,step)函数生成指定的数字序列,函数按照步长step在范围[start,end-1]内生成等差序列,start默认为0,step默认为1。

代码依次输出整数0、2、4、6、8。
2)while语句判断表达式的结果,如果为True继续循环,否则中止。

程序判断用户输入的内容是否为空字符串,为空则循环中止,否则计算累加和并等待再次输入。
1.3.3 函数和方法库
1.Python内置函数
Python提供大量的内置函数,无须说明,可直接使用。如input函数、range函数等,但大部分的第三方库(library)或包(package)并没有被加载到解释器中,因此在使用时需要先导入,Python提供3种导入形式。
1)直接导入整个方法库或包,调用时需要加上包名。

2)导入方法库中某个函数,调用时直接使用函数名。

3)导入方法库中某个类或函数并重命名,调用时使用临时替代名。

2.Python自定义函数
Python使用关键字def定义函数,函数定义时,变量类型无须说明,同时可以在参数列表的最后定义多个带有默认值的参数。函数调用时,具有默认值的形参,可以不传实参。

思考与练习
1.查阅资料,编写Python代码实现列表和字典元素的遍历输出。
2.使用Jupyter Notebook,将练习1的程序保存在.ipynb文件中。