![数据科学技术与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/571/31486571/b_31486571.jpg)
1.3 Python语言基础
本节简要介绍Python 3的基本语法,主要包括后续章节所需使用的特性。
1.3.1 常用数据类型
Python内置的常用数据类型有字符串、布尔量、元组、列表和字典。
数字(Number)包括整数、浮点数和复数类型,使用方法类似于数学计算。布尔值(Bool)有固定的表示,True表示真,False表示假。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_19_1.jpg?sign=1739269123-K7tHgKwHA00qvIzLfyuxZMqQSRrNWWdY-0-2c523b5d2b17063907889fbd1ea95703)
下面重点介绍数据分析中常用的字符串、元组、列表和字典数据类型。
1.字符串(string)
字符串是由一系列字符组成的数据类型,使用一对单引号'、双引号"或三引号'''表示。字符串变量的值不可以修改,任何类型的变量都可以使用内置函数str()转换为字符串。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_19_2.jpg?sign=1739269123-UwXzpu3ka4lSmNVTWjGJjpFaQ9AkQbWN-0-f656f5283b701b3e322b7d182515aee8)
Python内置了字符串常用函数,支持字符串查找、替换、比较等功能。
2.元组(tuple)和列表(list)
元组和列表是有序的元素序列,具有相同的索引方式,每个元素可以是任意类型的数据。不同的是,元组的数据不可修改,列表数据可以修改。
元组使用一对()将所有元素括起来,元素的数据类型可以不同,如('Wang',32,1.67),元素本身也可以是元组。元组中的元素使用变量名[索引]来表示,索引范围[0, n-1]或[-n, -1],如图1-9所示,其中n为元素个数(也称为元组长度)。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_19_3.jpg?sign=1739269123-xhYUdCZ16LouMvUMA0VAcpqleVdZqFEJ-0-50ccc1fbfdb70af72e43459475b81488)
图1-9 序列的索引
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_19_4.jpg?sign=1739269123-OHOORAnKKhz03Kyf9V7ouRgOdhxfWufI-0-0a93aa85dff1c921c1a96b8258323d43)
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_1.jpg?sign=1739269123-CN5S84pcVnuOMrSXK9sQRVusGJcAXHay-0-c12a7faacc324fc49ab61e158536fe79)
实际上字符串可以看作元组的特例,每个元素必须是字符的元组。
列表采用一对[]表示,是最灵活的序列表示形式,用来存储值需要变化的数据序列。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_2.jpg?sign=1739269123-Cd8BVurfuO8c0aWBonqp3Sk3gPS3lytn-0-4b518b6d1fde77bb07530432b224e2d3)
3.字典(dictionary)
字典是由一组“键-值对”元素组成的无序集合,字典元素的“键”具有唯一性。键和值通过冒号连接,不同键值对通过逗号隔开,如{'Wang':1.89, 'Li':1.76}。通过“键”,可以找到与之关联的“值”。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_3.jpg?sign=1739269123-4GT5VZ2VcCLEhwzDOfT22V47bH6ltXgD-0-f2ca5db725a66e892f2fe96cce0869d5)
字典数据可以通过“键”方便地添加、删除和修改。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_4.jpg?sign=1739269123-9SuyG1zV1Mz7TePy0H2AMadwlLiPFmWO-0-2c62f7c0f92c32df8acd1b4c0e104211)
1.3.2 流程控制
1.程序格式
Python采用严格的“缩进”来表示代码的层次关系,且只能通过“缩进”表示,如图1-10所示。要求同一段程序内,每个层次“缩进”采用的空格数一致,否则判定为语法错误。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_1.jpg?sign=1739269123-aTpGs9ovMJiSbrZcypInXUfvv3GIiC81-0-d1ae93ee46e966b50a38786941af28ad)
图1-10 “缩进”表示代码层次关系
2.注释
Python的注释语句有两种形式:单行注释以“#”开头,多行注释用一组"""括起来。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_2.jpg?sign=1739269123-odkQZrVMEOrMhujhvM3XeINDKtuDx0QM-0-0621fef4d69b0da6372b25a831663ec8)
3.输入和输出语句
Python使用input语句将键盘输入以单个字符串保存变量,print语句实现屏幕显示。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_3.jpg?sign=1739269123-599USLYfYQtUbELF99W8V5XoKqTyyafa-0-d02f5104f83cea64e4da85ccfcd02c00)
4.分支结构
Python支持单分支结构、双分支结构和多分支结构,基本格式如下。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_4.jpg?sign=1739269123-48mJKwOuGqD4GreJA5DgzssVISNp3wIM-0-1c6cf051124d8ddb2d93d5df6266eab3)
代码依次计算if、elif后面的表达式,执行第一个结果为真的表达式对应的分支语句。如果没有任何一个表达式结果为真,则执行else对应的语句。
5.循环结构
Python提供两种循环语句,for和while。
1)for循环在循环代码重复运行过程中,循环变量根据给定的序列依次赋值。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_1.jpg?sign=1739269123-2uAkWR3RLD36srY7517Qoq7V4fQBpOeX-0-dc872aa4833b5015b6186e75cb04cad4)
代码for语句循环5次,变量i依次被赋值1、3、5、7、9,并被累加到变量s上。循环结束后,s的值为25。
通常可以使用range(start,end,step)函数生成指定的数字序列,函数按照步长step在范围[start,end-1]内生成等差序列,start默认为0,step默认为1。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_2.jpg?sign=1739269123-El5USMi6knu0q76uKgNX7Ffj3BQIiKH5-0-64498f996f037795a1424698592b4fa6)
代码依次输出整数0、2、4、6、8。
2)while语句判断表达式的结果,如果为True继续循环,否则中止。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_3.jpg?sign=1739269123-wBqmiehkSZsyORCLQpV1xxcqrmC57N8X-0-d4701ec85a522cbe1c9e86bef93a274c)
程序判断用户输入的内容是否为空字符串,为空则循环中止,否则计算累加和并等待再次输入。
1.3.3 函数和方法库
1.Python内置函数
Python提供大量的内置函数,无须说明,可直接使用。如input函数、range函数等,但大部分的第三方库(library)或包(package)并没有被加载到解释器中,因此在使用时需要先导入,Python提供3种导入形式。
1)直接导入整个方法库或包,调用时需要加上包名。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_4.jpg?sign=1739269123-Btd8CZ9Ebz6rCZc0bVva6zIn4jYi4Tp7-0-99a8dd1c2c5bebce7caf71ef8292b5d2)
2)导入方法库中某个函数,调用时直接使用函数名。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_5.jpg?sign=1739269123-POCckXzfbXRtyiUtVo0LWUVpppWj7hV5-0-8d462afa1a133cfefe5cbccb549f58fc)
3)导入方法库中某个类或函数并重命名,调用时使用临时替代名。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_23_2.jpg?sign=1739269123-fJsSG5hSKEPtamJMVx6qYNTPyfoGcwAn-0-6394e148658ef714dea1eae1933f6c9f)
2.Python自定义函数
Python使用关键字def定义函数,函数定义时,变量类型无须说明,同时可以在参数列表的最后定义多个带有默认值的参数。函数调用时,具有默认值的形参,可以不传实参。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_23_3.jpg?sign=1739269123-NGZQubHo7tS6BfuUa95n8rax4Lxc8eMx-0-59c7c4e4ac7347a192dd4b88c2305a6c)
思考与练习
1.查阅资料,编写Python代码实现列表和字典元素的遍历输出。
2.使用Jupyter Notebook,将练习1的程序保存在.ipynb文件中。