![数据科学技术与应用](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=1738832434-S0Wn41SiFGYMzJqZdFi6Xa65REhBqe3D-0-799a5b24aa41d2c7aaaedac56eca94d7)
下面重点介绍数据分析中常用的字符串、元组、列表和字典数据类型。
1.字符串(string)
字符串是由一系列字符组成的数据类型,使用一对单引号'、双引号"或三引号'''表示。字符串变量的值不可以修改,任何类型的变量都可以使用内置函数str()转换为字符串。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_19_2.jpg?sign=1738832434-adY3N2ncuRmNJF0Q30GITUK41HpEC3On-0-c8cda2b2711214506a91ec1f368166aa)
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=1738832434-Ty17moaM5cwKstnwAd6YBwXQywR2gLdx-0-603c0d156bd9062ceaf2aea7b5a7b6cc)
图1-9 序列的索引
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_19_4.jpg?sign=1738832434-ATwoHdJxYlCwQLvrkI4iEjJsCA3I91RF-0-e3465ed969988d99ae0dd3eb44ba0539)
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_1.jpg?sign=1738832434-DW3HKhJMZXlT66AleAp4YylFX3nGfpFs-0-216a30dc0a9fd3bdede8541dbfe3ed07)
实际上字符串可以看作元组的特例,每个元素必须是字符的元组。
列表采用一对[]表示,是最灵活的序列表示形式,用来存储值需要变化的数据序列。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_2.jpg?sign=1738832434-C2tBIikaheZpTJvGlEUpmimhibTILxXW-0-ea43c5a9e005f21e37af7a77bc56759e)
3.字典(dictionary)
字典是由一组“键-值对”元素组成的无序集合,字典元素的“键”具有唯一性。键和值通过冒号连接,不同键值对通过逗号隔开,如{'Wang':1.89, 'Li':1.76}。通过“键”,可以找到与之关联的“值”。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_3.jpg?sign=1738832434-BMpptSE4i1xs3ypGf7wY7ViSE8kGaD6e-0-199eb9415a41bcdef6920839d53b1cb1)
字典数据可以通过“键”方便地添加、删除和修改。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_20_4.jpg?sign=1738832434-GXZd9kS5cnAoOSH8NGP0kOC21a4C74Ml-0-31f1fb887f77acf3e68ecbb10fc95cf2)
1.3.2 流程控制
1.程序格式
Python采用严格的“缩进”来表示代码的层次关系,且只能通过“缩进”表示,如图1-10所示。要求同一段程序内,每个层次“缩进”采用的空格数一致,否则判定为语法错误。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_1.jpg?sign=1738832434-8VNW2KPeAvGP6UiNzPB1wIWdMcHJ21zP-0-215c42b9d763dbb356bdabe964e8cca2)
图1-10 “缩进”表示代码层次关系
2.注释
Python的注释语句有两种形式:单行注释以“#”开头,多行注释用一组"""括起来。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_2.jpg?sign=1738832434-fDFgKJ22RAmgOLWjH2W7u9D2FwmoGUTp-0-59c54e3b25f3fc2de4387eeaf5e65813)
3.输入和输出语句
Python使用input语句将键盘输入以单个字符串保存变量,print语句实现屏幕显示。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_3.jpg?sign=1738832434-PQOOKE3UPjucqyW7wpLGEvCllMjWsmLH-0-1fbab9400ef78917002443883402d3b1)
4.分支结构
Python支持单分支结构、双分支结构和多分支结构,基本格式如下。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_21_4.jpg?sign=1738832434-nfeK35iOASzFArYBXMCJaAVHy78Ek2y5-0-a028f45391f2b086d7ffab0232b90ae9)
代码依次计算if、elif后面的表达式,执行第一个结果为真的表达式对应的分支语句。如果没有任何一个表达式结果为真,则执行else对应的语句。
5.循环结构
Python提供两种循环语句,for和while。
1)for循环在循环代码重复运行过程中,循环变量根据给定的序列依次赋值。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_1.jpg?sign=1738832434-jdIpEHi9rHFZhIAOY5cMnq1cffqnlJHk-0-aee770b66ac7737ea6b7e234e4e9f1e9)
代码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=1738832434-WGsbreA7Kf6A6fMBPwVH7zTKUf5itwHS-0-5d7e106282f38643fd8043423e15892e)
代码依次输出整数0、2、4、6、8。
2)while语句判断表达式的结果,如果为True继续循环,否则中止。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_3.jpg?sign=1738832434-frpeFWkuFVSOiZarNsJ2kWxDe7TbP3aI-0-9d8e479170d0ae5cbae937f171fcb5a8)
程序判断用户输入的内容是否为空字符串,为空则循环中止,否则计算累加和并等待再次输入。
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=1738832434-VVgoMO1wYiEyL6pX9XuwD0sjdmhe1nAp-0-589f89ddbb61b1980a68dd4b19fc94c4)
2)导入方法库中某个函数,调用时直接使用函数名。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_22_5.jpg?sign=1738832434-30BNN8T24a4xOO2D3yv3V7cEQJPESeKE-0-abb5cee5c963e22c1c24c908a037833c)
3)导入方法库中某个类或函数并重命名,调用时使用临时替代名。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_23_2.jpg?sign=1738832434-QTuGst8nNuLURIPKRYxssrYpNyNJuroT-0-01cfcf22b19055c8ac4cbc033d47f6a4)
2.Python自定义函数
Python使用关键字def定义函数,函数定义时,变量类型无须说明,同时可以在参数列表的最后定义多个带有默认值的参数。函数调用时,具有默认值的形参,可以不传实参。
![](https://epubservercos.yuewen.com/4FDE69/17042065704478806/epubprivate/OEBPS/Images/34665_23_3.jpg?sign=1738832434-ovhvOFKCOGC1IKIowtxryLLAyNaCHjlq-0-6e62d44954cca7a9dde5f1f16b308764)
思考与练习
1.查阅资料,编写Python代码实现列表和字典元素的遍历输出。
2.使用Jupyter Notebook,将练习1的程序保存在.ipynb文件中。