![数据科学技术与应用](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=1738886732-DD8LWXLPrJMMbTW2lFU16BGCO2QtiWca-0-c6705b05c9085c2c099ae5041beecc13)
下面重点介绍数据分析中常用的字符串、元组、列表和字典数据类型。
1.字符串(string)
字符串是由一系列字符组成的数据类型,使用一对单引号'、双引号"或三引号'''表示。字符串变量的值不可以修改,任何类型的变量都可以使用内置函数str()转换为字符串。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_19_2.jpg?sign=1738886732-KzELubOCttYqpymazFSGBXBWHUs9dcZE-0-881ed2fa78611c5d2e284f63e831494d)
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=1738886732-5H5jJGJU7QR8Sgo8Kk508aBdNTJvnKrR-0-c283dc3cd7df444c27575e9cf449d82b)
图1-9 序列的索引
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_19_4.jpg?sign=1738886732-wz4SeJwUKaFtpFoggMWqVVY6OEVnyQPj-0-2886f87c064262d4078e94ebf4ff9cc6)
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_1.jpg?sign=1738886732-Vo7HicZXtiP3HexcvHDHRi7JMVCTmFUJ-0-39590ccff9a86894ade2a393d3cfe6ce)
实际上字符串可以看作元组的特例,每个元素必须是字符的元组。
列表采用一对[]表示,是最灵活的序列表示形式,用来存储值需要变化的数据序列。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_2.jpg?sign=1738886732-QRVojgaMVXvPLYLdJRv6fTQjU7HDZOCh-0-3143da1393e0d0ee5b299bdf1f4842d0)
3.字典(dictionary)
字典是由一组“键-值对”元素组成的无序集合,字典元素的“键”具有唯一性。键和值通过冒号连接,不同键值对通过逗号隔开,如{'Wang':1.89, 'Li':1.76}。通过“键”,可以找到与之关联的“值”。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_3.jpg?sign=1738886732-jsdFFfbznI04RbyBXd0Hzck6v2uUSuqm-0-f1a54fb65959439686476be69e5e3620)
字典数据可以通过“键”方便地添加、删除和修改。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_4.jpg?sign=1738886732-sg8tBkmr9wbOgGbTYgh1JY1HDeU7sVA9-0-26dc28154fde0f0d3260169c8c25c3dc)
1.3.2 流程控制
1.程序格式
Python采用严格的“缩进”来表示代码的层次关系,且只能通过“缩进”表示,如图1-10所示。要求同一段程序内,每个层次“缩进”采用的空格数一致,否则判定为语法错误。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_1.jpg?sign=1738886732-4HY7IbHULTc7vLYyPI7Ftw4hBbhck8P2-0-5dd3256dd03782d2ed8e9c85026af616)
图1-10 “缩进”表示代码层次关系
2.注释
Python的注释语句有两种形式:单行注释以“#”开头,多行注释用一组"""括起来。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_2.jpg?sign=1738886732-VviXXsNzpaRIe9Vql0kvajAgeM38kKbj-0-f8020f8d4c41dfad91242f2739ec20c0)
3.输入和输出语句
Python使用input语句将键盘输入以单个字符串保存变量,print语句实现屏幕显示。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_3.jpg?sign=1738886732-oYlDcxWfI3k8DZhHBwF06hdmtF7BsVaQ-0-df2bc5cb0708edceef9396917e80e1a8)
4.分支结构
Python支持单分支结构、双分支结构和多分支结构,基本格式如下。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_4.jpg?sign=1738886732-e2pyBeypz9XHsorRmquqmh1P5BZJDZPj-0-0899784d62c284a05883289aee7ccc15)
代码依次计算if、elif后面的表达式,执行第一个结果为真的表达式对应的分支语句。如果没有任何一个表达式结果为真,则执行else对应的语句。
5.循环结构
Python提供两种循环语句,for和while。
1)for循环在循环代码重复运行过程中,循环变量根据给定的序列依次赋值。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_1.jpg?sign=1738886732-GTdhmVm7ec0zl1S5JawEdJ4l783vd5oy-0-4fbbb467af9493b5ffd806dc36faf3e2)
代码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=1738886732-Jjv7iSiJ3kTEycM4R5r14WhwvE9NiJTN-0-c0337dfd2e21a5288e112950152ba7ff)
代码依次输出整数0、2、4、6、8。
2)while语句判断表达式的结果,如果为True继续循环,否则中止。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_3.jpg?sign=1738886732-7clUF6sA5JQopQ6tJ1MWyqu4F7lzANTt-0-4b3daed9ecadab5fc91caa167e4239ef)
程序判断用户输入的内容是否为空字符串,为空则循环中止,否则计算累加和并等待再次输入。
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=1738886732-GDROG3nJDzJkQN45opuJAbJcOwDtp668-0-fd8fc835ffc011a35b0b8f171bbe8b73)
2)导入方法库中某个函数,调用时直接使用函数名。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_5.jpg?sign=1738886732-ZvVDYoPYnW8Q14x01izyMdHVWysQSgZ9-0-f9800bc30550fbea25658db1b45ca987)
3)导入方法库中某个类或函数并重命名,调用时使用临时替代名。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_23_2.jpg?sign=1738886732-gVS8r3DV94RAKwtwE6iz8Tal5i36cyJ1-0-d8c80ce1e0a6f95aa11a79e6be426b4d)
2.Python自定义函数
Python使用关键字def定义函数,函数定义时,变量类型无须说明,同时可以在参数列表的最后定义多个带有默认值的参数。函数调用时,具有默认值的形参,可以不传实参。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_23_3.jpg?sign=1738886732-E7TjHKexxah38jBM568fqyd6XpX5ZSP4-0-baecc397617c4f94479a219fa822c76a)
思考与练习
1.查阅资料,编写Python代码实现列表和字典元素的遍历输出。
2.使用Jupyter Notebook,将练习1的程序保存在.ipynb文件中。