终于明白了抄不是目的。当然不可能是给我抄,今天的标题很好的说明了一切。如果一个人学机器一样去麻木的非常有规律的完成自己的罚抄,那么他终将和机器一样;一个人应该学人,每抄一行,每抄一遍都应该去思考这是为什么。
我为什么会随口说出’我吃过了‘,我他
妈真是蠢驴,草泥马的陈有德大傻逼。
十五岁的时候让你学游泳,你说难,不学了,等你十八岁的时候,有女孩子约你一起去游泳,你说你不会
第十天
集合类型:
1.用途:关系运算,去重
2.定义方式,使用{}用逗号分隔开多个值,存放的值只能是不可变(可hash)类型
3.强调:
集合内元素都是不可变即可hash类型
集合内的元素无序
集合内的元素不能重复
单纯使用集合去重,需要注意的问题:
去重的目标所包含的值必须是不可变类型
去重的结果会打乱原来的顺序
常用操作+内置的方法:
优先掌握的操作:
1,长度len():
pythOners={'王大炮','李二丫','陈独秀','艾里克斯','wxx','欧德博爱'}
print(len(pythoners))
2.成员运算和in 和 not in:
print('李二丫' in pythoners)
3.并集 |
pythOners={'王大炮','李二丫','陈独秀','艾里克斯','wxx','欧德博爱'}
linuxers={'陈独秀','wxx','egon','张全蛋'}
print(pythoners | linuxers)
print(pythoners.union(linuxers))
4.交集&
print(pythoners & linuxers)
print(pythoners.intersection(linuxers))
print(linuxers & pythoners)
5.差集-
print(pythoners - linuxers)
print(pythoners.difference(linuxers))
print(linuxers - pythoners)
print(linuxers.difference(pythoners))
6.^对称差集(交叉补集)
print(pythoners ^ linuxers)
print(pythoners.symmetric_difference(linuxers))
7.==
s1={1,2,3}
s2={1,2,3}
print(s1 == s2)
8.父集(包含关系):>,>=
s1={1,2,3,4,5}
s2={1,2,3}
print(s1 > s2) # s1包含s2
9.子集,被包含的关系:<,<=
需要掌握的内置方法:
1.add()添加一个元素
s1={1,2,3,4,5}
s1.add(6)
print(s1)
2.update()加入一个集合
s1.update({4,7,8,9})
print(s1)
3.pop()随机删除一个元素,有返回值
res=s1.pop()
print(res)
4.remove()删除一个元素,没有返回值
res=s1.remove(4)
print(res)
print(s1)
5.difference_update,将集合中不同的元素更新到指定的集合中
s1={1,2,3,4,5}
s2={2,3,7,8}
s1=s1 - s2
print(s1)
s1.difference_update(s2) # s1=s1 - s2
print(s1)
6.discard()即便要删除的元素不存在也不会报错
s1.discard(7) # 即便要删除的元素不存在也不会报错
7.isdisjoint()查询某个集合的值是否在另一个集合中
s1={1,2,3,4,5}
s2={5,6,7,8}
print(s1.isdisjoint(s2))
集合类型总结:
可以存多个值,但是存的值都是不可变的类型;无序;可变类型
单纯的用集合去重时,需要主要的问题,
去重的目标所包含的值必须都为不可变类型
去重结果会打乱原来的顺序
字符编码:
将人类的字符编码/转换成计算机能识别的数字,这种转换必须遵循一套固定的标准,该标准无非是人类字符与数字之间的对应关系,称之为字符编码表
这个东西我已经完全理解了,所以我把老师讲课打出来的文字复
制粘贴出来给你们看,看得懂的看,看不懂的留言:
00
01
10
11
A---->0000 0000
B---->0000 0001
c---->0000 0002
d---->0000 0003
bit:二进制位
Bytes:字节
ASCII码表:用1Bytes表示一个英文字符
1英文字符=8bit=1Bytes
GBK:用2Bytes表示一个中文字符,1Bytes去表示英文字符
unicode:内存中使用的是unicode编码,unicode把全世界的字符都建立好对应关系
用2Bytes去表示一个字符
0000 0000 0000 0000
utf-8 #unicode tranform format-8
utf-8 用1Bytes表示英文,用3Bytes表示中文
#字符编码需要记住的概念
#01 内存中固定使用unicode编码,我们唯一可以改变的存储到硬盘时使用的编码
#02 要想保证存取文件不乱乱码,应该保证文档当初是以什么编码格式存的,就应该以什么编码格式去读取
#03 python3解释器默认编码是UTF-8
python2解释器默认编码是ASCII
在python2中有两种字符串编码格式
1、unicode:
x=u'上'
2、unicode编码后的结果
x='上' #如果文件头为coding:utf-8,那么"上"被存成utf-8格式的二进制
在python3只有一种字符串编码格式:
1、unicode
x='上’
#04 编码与解码
unicode-------编码encode-------->gbk
unicode<-------解码decode--------gbk
#***
#coding:gbk
x='上’
x.decode('gbk')
#coding:gbk
x=u'上'
x.encode('gbk')
x.encode('utf-8')
#在python3中(*****)
x='上'
x只能进行编码
x.encode('gbk')
总结:python2和python3 :
在python2 中的字符串类型都是str类型,都是unicode按照文件头指定的编码,编码之后的结果
在python2中也可以制造unicode编码的字符串,需要在字符串前面加上u
python3
在python3中所有的字符串类型都是unicode编码的
所以python3中的字符串类型可以编码成其他类型