Python 学习手册 第二部分 类型与运算 第4章 介绍Python对象类型
第二部分 类型与运算
第四章 介绍Python对象类型
构成: 对象 --> 表达式 --> 语句 --> 模块 --> 程序
使用内置对象:编程简单、强大、高效!
程序更容易编写;
内置对象是扩展的组件;
内置对象往往比定制的数据结构更有效率;
内置对象是语言的标准的一部分;
Python 核心数据类型
Python 无声明!
(1) 数字
精度(全精度、用户友好形式); math模块的引入
(2) 字符串
单个字符的字符串序列
(1) 序列
正向索引从最左边的偏移量进行编码,0,1,……
反向索引从最右边的偏移量进行计算,……,1,0
S[-1] 等同于 S[len(S)-1]
分片操作 X[I:J] 从偏移量 I 开始,直到 J-1;
一个分片中,左边默认为0,右边默认为序列长度;
支持 “+” 合并 以及 重复
(2) 不可变性
不可对某一字符位置直接赋值进行改变,需新建字符串进行改变;
*** 每一个核心类型都有可变性与不可变之分,数字、字符串、元祖不可变;
列表和字典自由改变。
(3) 类型特定的方法
简明的法则:
可作为多种类型通用型操作的都是以内置函数或表达式的形式出现[例如,len(X),X[0] 等];
类型特定的操作都是以方法调用的形式出现[例如,aString.upper() ]。
(4)寻求Help
dir(S) 语句给出该类型的方法名称;
传递给 help(S.replace) 查询是做什么的;
(5)编写字符串的其他方法
“”” ***** ””” 可以包括多行字符串变量;
“ *** ” 与 ‘ *** ‘ 相同;
支持 \ 转义机制;
(6)模式匹配
匹配子字符串相应部分,保存为组;
(3) 列表
(1) 序列操作
基本操作与字符串无差
(2) 类型特定操作
列表与其他语言的数组形式相似,但是列表要强大,且内部元素并无固定类型的约束;列表没有固定大小;
列表可以就地在某一位置插入元素,移除元素,同时修改列表;并不创建新的列表;
(3) 边界检查
虽无固定大小,但是对列表之外的位置赋值也是会导致错误滴!!
(4) 嵌套
(5) 列表解析
(4) 字典
是一种映射;
是通过键而不是相对位置进行存储;
字典是Python核心对象集合中的唯一的一种映射类型,具有可变性,可以就地进行改变,随需求增大或减小,像列表一样;
(1) 映射操作
字典编写在大括号里,包含一系列的“键:值”对;
字典的索引操作和序列使用的是相同的语法,但方括号里是键值;
字典的创建
(2) 重访嵌套
最后一次引用对象后(例如赋值),这个对象所占用的内存空间将会自动清理掉;
Python 具有一种叫做垃圾收集的特性,在程序运行时清理不再使用的内存;
(3) 键的排序:for 循环
字典不是序列,不包含任何可靠的从左到右的顺序;
要强调某种顺序时:A. 通过字典的keys 收集成为一个列表;B. 使用列表的sort方法进行排序;C. 使用Python的For 循环逐个显示;
最近的版本中直接调用 sorted 函数;
(4) 迭代和优化
Python的一个主要原则就是:首先为了简单和可读性去编写代码,在程序可以工作,并证明确实有必要考虑性能后,再考虑该问题。
(5) 不存在的键,if测试
(5) 元组
元组是序列,具有不可变性,和字符串类似。
支持任意类型、任意嵌套以及常见的序列操作。
与列表和字典一样,远足支持混合的类型和嵌套,但是不能增长和缩短,因为是不可变的。
元组不能够改变,提供了一种完整性的约束;而列表则是可以随时改变的。
(6) 文件
文件对象是Python代码对电脑上外部文件的主要接口。
特殊性:没有特定的常量语法创建文件!
当前文件夹下创建文件data.txt;
Python处理更高级任务类文件工具:管道,先进先出队列(FIFO),
套接字,通过键访问文件,对象持久,基于描述符的文件,关系数据库和面向对象数据库接口等。
(7) 其他核心类型
集合、十进制数、分数、布尔值、特殊的占位符对象None等;
(8) 代码灵活性
在Python中,我们编写对象接口(所支持的操作)而不是类型。
不要去像C一样,进行类型检测;完成任务即可;
(9) 用户定义的类