1.今日内容
- 基础数据类型的补充
- 数据类型之间的转换
- 常见的坑
- 编码的进阶
2.昨日回顾
- id is ==
- id:获取对象的内存地址; is:内存地址是否相同;==:数据是否相同
- 代码块:一个文件,交互式命令一行就是一个代码块
- 代码块的缓存机制
- 优点:提升性能,节省空间
- 同一个代码块下的缓存机制(字符串驻留机制)
- 所有的数字,bool,几乎所有的字符串
- 不同代码块下的缓存机制(小数据池)
- -5~256 int,bool,满足一定规则的字符串
- 集合:作用:列表去重,关系测试
- 深浅copy:
- 浅copy:在内存中开辟一个新的空间存放copy的对象(列表,字典),但是里面的所有元素与被copy对象里面的对象共用一个
- 深copy
3.具体内容
-
数据类型的补充
#str #首字母大写: s = 'xiaoshuo' s1 = s.capitalize() print(s1) #每个单词首字母大写 s1 = s.title() print(s1) #大小写互换 s1 = s.swapcase() print() #统计出现的次数 s1 = s.count('o') print(s1) #查找 print(s.find('o')) #find 查找不到返回-1 print(s.index('o'))#index 查找不到就报错 #list li = list('8765432') #迭代定义的方式 print(li) #统计 print(li.count('8')) #查看索引 print(li.index('8')) #反转 li.reverse() print(li) #排序 li.sort() #升序 li.sort(reverse = True) #降序 print(li) #tuple tu = tuple('123456') #迭代定义元组 #统计 print(tu.count('1')) #查找索引 print(tu.index('1')) #dict dic = dict(k1 = 1,k2 = 2, k3 = 3) print(dic) #随机删除: dic.popitem() python3.6版本之后,默认删除最后个键值对 python3.5版本以前,随机删除 #批量创建字典: dic = {} dic1 = dic.fromkeys('qwert',[1234]) #第一个参数可迭代对象 #第二个参数时每个键对应的值---用的都是同一个内存地址 #set s = set('12345') #迭代定义方式 print(s)
-
基础数据类型的转换
#数据类型转换: #字符串转化数字的时候必须都是十进制数 #字符串转列表: print(s.split()) #列表转换字符串 print(''.join(li)) #除字典外,数据类型之间可以直接互相转换 #基础数据类型分类: str;int;bool;tuple;list;dict;set #有序 str;int;bool;tuple;list #无序 dict;set #可变 list;dict;set #不可变 str;int;boo;tuple #访问方式 #直接访问 int;bool;set #顺序访问 list;tuple;set #键访问 dict
-
常见的坑
- 列表
- 按照索引循环删除列表元素的时候,要倒序删除,否则得到的结果不是你想要的
- 字典
- 字典在for循环的时候不能改变字典的大小
- 如果要循环删除数据,需要定义一个列表,在循环列表对字典内的元素进行删除
- 列表
-
编码的进阶
encode() #编码 decode() #解码 #不同的密码本之间不能相互识别 #数据在内存中全部是以Unicode编码的,但是当你的数据用于网络传输或者存储到硬盘中,必须是以非Unicode编码的(utf-8,gbk等) #用什么编码集编码,就用什么编码集解码