《03-Python实战教程(微课版)孔祥盛ppt课件(完整版).pptx》由会员分享,可在线阅读,更多相关《03-Python实战教程(微课版)孔祥盛ppt课件(完整版).pptx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、03-Python实战教程(微课版)孔祥盛ppt课件(完整版)第三章第三章初识内置数据类型孔祥盛Python实战教程(微课版)人民邮电出版社版权所有,侵权必究ISBN:978-7-115-57963-8本书资源:人邮教育社区3第三章第三章内容简介内容简介43.1 常用常用的的内置数据类型内置数据类型 Python中一切皆对象,对象必须有数据类型,数据类型(type)就是类(class)。53.1 常用常用的的内置数据类型内置数据类型 _ _builtins_ _模块中定义的数据类型是内置数据类型。 内置数据类型可以直接使用 整数 浮点数 布尔型 NoneType 字符串 元组 列表 集合 字典
2、63.1 常用内置数据类型常用内置数据类型 1.理解数据类型与对象之间的关系 数据类型与对象之间的关系是先有数据类型再有对象。 ?数据类型是对象吗? 2.每一种数据类型都提供了一系列的属性和方法。 以整数类型为例,通过执行代码“dir(int)”可以查看整数类型提供了哪些属性和方法。 3.不同的数据类型提供的方法名可能相同,但方法的具体定义可能并不相同。 13+14 对比 13 + 14 (13)._ _add_ _(14) 对比 (13)._ _add_ _(14)73.2 数字、布尔型数据和数字、布尔型数据和None 数字(数字(numbers) 整数(整数(int) 整数是不带小数点的数
3、字,例如整数是不带小数点的数字,例如-1、0、1 浮点数(浮点数(float) 浮点数是带小数点的数字,例如-1.0、0.0、1.0,3.3e5(表示3.3乘以10的5次方)、3.3e-5(表示3.3乘以10的-5次方),3e5(表示3.0乘以10的5次方)都是浮点数。 复数(复数(complex)。 不讲解83.2 数字、布尔型数据和数字、布尔型数据和None 布尔型数据只有布尔型数据只有True和和False。 True和False都会被放入“全局intern池”中,被所有Python会话共享使用,True和False在内存中只留存一份。 参与比较运算或算术运算时,可将True看作整数1,
4、False看作整数0。 True是“真”,“真”不止是True;False是“假”,“假”不止是False,这就是True和“真”、False和“假”之间的关系。93.2 数字、布尔型数据和数字、布尔型数据和None None不是空元组不是空元组(),不是空列表,不是空列表,不是空集合,不是空集合set(),不,不是空字典是空字典,不是空字符串不是空字符串,不是整数,不是整数0,不是,不是False,也不,也不是未定义,是未定义,None就是就是None。 课程没有结束时,如果问一个学生这门课程的成绩,学生会说成绩未知,使用Python代码可以描述为“grade = None”。 None会被
5、放入会被放入“全局全局intern池池”中,被所有中,被所有Python会话共享会话共享使用,使用,None在内存中只留存一份。在内存中只留存一份。103.2 数字、布尔型数据和数字、布尔型数据和None None的使用场景如下。的使用场景如下。 当函数没有使用当函数没有使用return语句返回结果时,函数返回语句返回结果时,函数返回None。 当使用当使用d.get(key)方法从字典方法从字典d中获取键中获取键key对应的值时,对应的值时,键键key如果没有出现在字典如果没有出现在字典d中,返回中,返回None。 当函数的形参的数据类型未知时,可以将形参的默认值设当函数的形参的数据类型未知
6、时,可以将形参的默认值设置为置为None。113.3 字符串字符串str 由由0个或多个个或多个Unicode字符组成的序列。字符组成的序列。 使用成对的单引号、成对的双引号、成对的三个单引号或者使用成对的单引号、成对的双引号、成对的三个单引号或者成对的三个双引号即可创建字符串。成对的三个双引号即可创建字符串。123.3.1 字符串的特点字符串的特点 特点特点1:字符串内的字符有先后顺序,并且区分大小写。:字符串内的字符有先后顺序,并且区分大小写。 特点特点2:空字符串表示:空字符串表示0个字符组成的字符序列,例如个字符组成的字符序列,例如 或者或者都是空字符串;空格字符串表示一个空格字符组成
7、的字符序都是空字符串;空格字符串表示一个空格字符组成的字符序列,例如列,例如 或者或者 都是空格字符串。都是空格字符串。 特点特点3:字符串不可变更(字符串的长度不能变更,字符串内:字符串不可变更(字符串的长度不能变更,字符串内的字符也不能变更)。的字符也不能变更)。 特点特点4:成对的单引号引起来的字符串,不必转义双引号;成:成对的单引号引起来的字符串,不必转义双引号;成对的双引号引起来的字符串,不必转义单引号;成对的三个对的双引号引起来的字符串,不必转义单引号;成对的三个引号引起来的字符串,不仅不用转义单引号、多引号,还可引号引起来的字符串,不仅不用转义单引号、多引号,还可以跨越多行。以跨
8、越多行。133.3.2 转义字符转义字符 如何在字符串中包含不可见字符,例如退格符、制表符、换如何在字符串中包含不可见字符,例如退格符、制表符、换行符?行符? 成对的单引号引起来的字符串如何包含单引号?成对的单引号引起来的字符串如何包含单引号? 成对的双引号引起来的字符串如何包含双引号?成对的双引号引起来的字符串如何包含双引号? 转义字符用于解决字符串中的特殊字符问题。转义字符用于解决字符串中的特殊字符问题。143.3.2 转义字符转义字符 转义字符可以表示为:转义字符可以表示为: “转义功能转义功能+特殊字符特殊字符=转义字符转义字符” 转义功能由反斜杠转义功能由反斜杠“”提供。提供。 注意
9、注意“”后面必须紧跟特殊字符,转义功能才能生效,否则后面必须紧跟特殊字符,转义功能才能生效,否则反斜杠反斜杠“”就是一个普通的字符。就是一个普通的字符。153.3.2 转义字符转义字符 外观上,反斜杠外观上,反斜杠“”后跟特殊字符由两个字符构成,但实际后跟特殊字符由两个字符构成,但实际上这两个字符共同组成了单个字符,该单个字符就是转义字上这两个字符共同组成了单个字符,该单个字符就是转义字符,如表所示。符,如表所示。163.3.2 转义字符转义字符 以字母以字母“r”或或“R”为前缀的字符串称为原始字符串,为前缀的字符串称为原始字符串,“r”是单词是单词raw(译作原始的)的首字母。(译作原始的
10、)的首字母。 原始字符串中的原始字符串中的“”是一个普通字符,不具备转义功能。是一个普通字符,不具备转义功能。 字符串字符串rC:tmpnetwork 等效于等效于 字符串字符串C:tmpnetwork。173.3.3 字符串的索引操作字符串的索引操作 字符串的索引操作。字符串的索引操作。 如果索引超出范围,则抛出IndexError异常。string = “你好Python”183.3.4 字符串的切片操作字符串的切片操作 字符串的切片操作。字符串的切片操作。 如果索引超出范围,不抛异常。 对字符串对字符串string切片的语法格式切片的语法格式 stringstart:stop:step
11、start、stop和step都是整数,分别表示开始索引、结束索引和步长,它们都是可选参数(非必填项)。 若省略了start,则表示从第0个位置开始;若省略了stop,则表示截取到末尾;若省略了step,则表示步长是1。注意1:对字符串切片时,不会抛出IndexError异常。注意2:通过切片获取的子字符串中不包含stop(结束索引)所指向的字符。193.3.5 格式化字符串格式化字符串 以字母以字母“f”或或“F”为前缀的字符串称为格式化字符串,为前缀的字符串称为格式化字符串,“f”是单词是单词format的首字母。的首字母。 格式化字符串中的大括号格式化字符串中的大括号包含一个包含一个Py
12、thon表达式,用于表达式,用于向字符串填入向字符串填入Python表达式的执行结果。表达式的执行结果。 前缀前缀“f”或或“F”可以和前缀可以和前缀“r”或或“R”组合使用。组合使用。Python程序程序1234last_name = 张first_name = 三name = f姓last_name,名first_name,我叫last_name + first_namename #输出姓张,名三,我叫张三203.4 元组元组tuple 以以“(”开始,开始,“)”结束,由英文结束,由英文“,”分隔的一组值就是元分隔的一组值就是元组。组。 元组内的值统称为元组内的值统称为“元素元素”(el
13、ement)。)。 元组元组对象对象存在如下特点。存在如下特点。 1:空元组必须使用“()”括起来,其他元组通常没有必要使用“()”括起来。 2:对于单元素的元组而言,单元素后必须有英文“,”。 3:元组的元素可以是任意数据类型的对象。 4:元组内的元素有先后顺序。 5:元组不可变更(元组的长度不能变更,元组内的元素也不能变更)。 6:元组支持索引和切片操作,用法和字符串相同。213.5 列表列表list 以以“ ”开始,开始,“”结束,由英文结束,由英文“,”分隔的一组值就是列分隔的一组值就是列表。表。 列表内的值称为列表内的值称为“元素元素”(element)。)。 列表对象存在如下特点。
14、列表对象存在如下特点。 1:列表的元素可以是任意数据类型的对象(和元组相同)。 2:列表内的元素有先后顺序(和元组相同)。 3:和元组不同,列表可变更(列表的长度可变更,列表内的元素也可变更)。 4:列表支持索引和切片操作,用法和字符串相同。223.6 集合集合set 以以“ ”开始,开始,“”结束,由英文结束,由英文“,”分隔的一组值就是分隔的一组值就是集合。集合。 集合内的值称为集合内的值称为“元素元素”(element)。)。 集合对象存在如下特点。集合对象存在如下特点。 1:集合内的元素不可重复(集合通常用于删除重复项)。 2:集合内的元素无先后顺序(不支持索引操作和切片操作)。 3:
15、集合的长度可变更。 4:集合内的元素不可变更。集合内的元素不能是列表、集合或者字典等可变更对象。233.7 字典字典dict 以以“ ”开始,开始,“”结束,由英文结束,由英文“,”分隔的一组分隔的一组“key:value”(键值对)就是字典。(键值对)就是字典。 字典内的字典内的“键值对键值对”称为称为“元素元素”(element),字典中的),字典中的每个元素记录了每个元素记录了“键键”“值值”的映射关系。的映射关系。 字典对象存在如下特点。字典对象存在如下特点。 1:字典内元素的“键”不可重复(字典支持索引操作)。 2:字典内元素的“键”不可变更。数字、字符串可以作为字典的“键”;如果元
16、组仅包含字符串、数字或元组,元组也可以作为字典的“键”。 3:字典是可变更的。可以通过字典元素的“键”,修改元素的“值”、删除元素和添加元素。 4:字典内元素的“值”可以是任意数据类型的对象。 5:字典内的元素无先后顺序。但从Python3.6开始,字典可以记住元素与元素之间的先后顺序。243.8 对象的拷贝对象的拷贝 对象的拷贝(对象的拷贝(copy)也称为对象的复制。)也称为对象的复制。 对象的拷贝分为对象的拷贝分为3种情形,分别是种情形,分别是 使用赋值语句使用赋值语句“=”拷贝对象;拷贝对象; 浅拷贝(浅拷贝(shallow copy);); 深拷贝(深拷贝(deep copy)。)。
17、253.8 对象的拷贝对象的拷贝 1.使用赋值语句使用赋值语句“=”拷贝对象。拷贝对象。 本质拷贝的是对象名(也叫对象的引用)。因此,使用赋值本质拷贝的是对象名(也叫对象的引用)。因此,使用赋值语句语句“=”拷贝对象时,不会创建新对象。拷贝对象时,不会创建新对象。 如果被拷贝的对象是可变更对象,使用赋值语句如果被拷贝的对象是可变更对象,使用赋值语句“=”拷贝拷贝对象会造成对象会造成“牵一发而动全身牵一发而动全身”的副作用。的副作用。263.8 对象的拷贝对象的拷贝 2.浅拷贝。浅拷贝。 如果被拷贝的对象是可变更对象,浅拷贝只拷贝第如果被拷贝的对象是可变更对象,浅拷贝只拷贝第1层级的层级的“索引
18、下标索引下标”。 浅拷贝通常借助切片或者浅拷贝通常借助切片或者copy标准模块的标准模块的copy函数实现。函数实现。 需要注意,如果被拷贝的可变更对象嵌套了其它可变更对象,需要注意,如果被拷贝的可变更对象嵌套了其它可变更对象,浅拷贝会造成浅拷贝会造成“牵一发而动全身牵一发而动全身”的副作用。的副作用。273.8 对象的拷贝对象的拷贝 3.深拷贝。深拷贝。 深拷贝本质是递归拷贝所有层级的深拷贝本质是递归拷贝所有层级的“索引下标索引下标”。 深拷贝通常借助深拷贝通常借助copy标准模块的标准模块的deepcopy函数实现。函数实现。 即便被拷贝的对象是可变更对象,并且嵌套了其它可变更对即便被拷贝
19、的对象是可变更对象,并且嵌套了其它可变更对象,深拷贝也不会造成象,深拷贝也不会造成“牵一发而动全身牵一发而动全身”的副作用。的副作用。28上机实践上机实践上机实践上机实践1:认识数字、布尔型数据和:认识数字、布尔型数据和None上机实践上机实践2:认识字符串:认识字符串上机实践上机实践3:认识元组:认识元组tuple上机实践上机实践4:认识列表:认识列表list上机实践上机实践5:认识集合:认识集合set上机实践上机实践6:认识字典:认识字典dict上机实践上机实践7:对象的拷贝:对象的拷贝上机实践上机实践8:理解:理解“Python中一切皆对象中一切皆对象”Note: 具体步骤具体步骤参看本书参看本书.29Note: 具体步骤具体步骤参看本书参看本书.