Python,千磨万击还坚劲,任尔东西南北风
2018年8月3日 前情回顾与今日学习
一. 上次内容回顾
1. is 和==的区别
id() id()---获取内存地址
id:数字或字符或字母在内存中的存储地址
python中存在一个小数据池的概念
python中两个数据类型存在小数据池:
小数据池中整数范围是int: -5 ~ 256
str: 字符串:字符串中不能包含特殊符号+-*/ 等等
小数据池的存在可以节省运行内存,优化代码运行
is 和== 有什么区别:
is 比较的是内存地址.
== 比较的是两边的值
2. 再谈编码
1. ASCII, 支持英文, 数字, 一些特殊符号 8bit(位) 1byte(字节)
2. GBK, 国标码, 汉字. 16bit 2byte 必须兼容ASCII
3. UNICODE, 万国码, 32bit 4byte , 兼容ASCII
4. UTF-8 可变长度的万国码
英文: 8bit 1byte
欧洲: 16bit 2byte
汉字: 24bit 3byte
python2的版本. 默认使用ASCII
python3的版本. 默认使用unicode. 在计算的时候会非常方便
在网络传输和数据存储的时候. 换gbk, utf-8(90%)
编码(encode): unicode变成你需要的编码
b’alex,中的b’指的是byte
用什么编码,就用什么解码
encode 编码 打印输出拿到明文编码后对应的字节decode 解码 将编码后的字节解码成对应的明文
编码之后的内容是字节(bytes类型)
解码(decode): 把目标bytes转换成字符串
二. 作业讲解
三. 今日主要内容
字符串是未来使用频率最高的数据类型,字符串不可变.
这两个独立的列表,内存地址是不一样的
一.
作业讲解:
老男孩海选,评委选手打分,是个评委,十个分数,评委所打的分数必须大于5分小于10分.
对之前的知识点进行补充.
1. str中的join方法. 把列表转换成字符串
2. 列表和字典在循环的时候不能直接删除.
需要把要删除的内容记录在新列表中.
然后循环新列表.删除字典或列表
列表中的元素无法删除干净,是因为当列表中第一个元素(索引为0)被删除掉以后,后面的元素会向前移动.第二次循环会指向索引为1的元素进行删除
紫云,大云,玉溪,紫钻,a,b
0 1 2 3 4 5
紫云被删除掉以后,大云的索引变成[0],而循环会+1指向玉溪进行删除,所以上面的元素无法删除干净.
字典在自身循环的时候不允许改变大小
3. fromkeys()
1. 返回新字典. 对原字典没有影响
2. 后面的value.是多个key共享一个value
二. set集合
set集合本身是可变的数据类型,不可哈希. 可变类型就有增删改查. set集合没有索引.
差集
set集合的很重要的用途就是用来去重
特点:
无序, 不重复, 元素必须可哈希(不可变)
作用:
去重复
本身是可变的数据类型. 有增删改查操作.
frozenset()冻结的集合.
不可变的. 可哈希的
三. 深浅拷贝(难点)
浅拷贝,只是拷贝表面的内容,如上图lst2是拷贝lst1的,但是两个列表共用一个嵌套的小列表
1. 赋值. 没有创建新对象. 公用同一个对象
2. 浅拷贝. 拷贝第一层内容. [:]或copy()
3. 深拷贝. 拷贝所有内容. 包括内部的所有.