一、集合关系运算与常用操作
二、文件操作
一、集合关系运算与常用操作
关系运算
friends1 = {“zero”,“kevin”,“jason”,“egon”}
friends2 = {“jy”,“ricky”,“jason”,“egon”}
1、取二者的共同好友:交集
res = friends1 & friends2
print(res)
2、取二者所有的好友有哪些:并集
res = friends1 | friends2
print(res)
3、去二者所有的好友有哪些:差集(
res=friends1 - friends2
print(res)
res = friends2 - friends1
print(res)
4、取到两者独有的好友
res1=friends1 - friends2
res2=friends2 - friends1
print(res1 | res2) #原理
print(friends1 ^ friends2)
进阶,简化上面步骤
5、父子集:一个集合包含另外一个集合,他们才有父子集的关系
s1={1,2,3}
s2={3,4,5}
print(s1 > s2)#False
print(s1 < s2)#False
print(s1 = s2)#False
当集合1》集合2 结果True时,意味着集合1内的元素完全包含了集合2
s1 ={1,2,3}
s2 = {1,2}
print(s1>s2) #结果True,代表s1是s2的父集
print(s2<s1) #结果True,代表s2是s1的子集
s1 = {1,2,3}
s2 = {3,2,1}
print(s1 == s2)
二、常用操作与内置方法
s1 = {3,2,1}
for item in s1:
print(item)
s1 = {333,222,111}
s1.update()
print(id(s1))#集合可变类型
s1.clear()
s1.remove()#指定删除,捏碎了,不要做赋值
s1.remove(333)
print(s1)
s1.discard()
del s1#不能删除集合中某一个元素
res = s1.discard(333)
print(s1)
print(res)#无返回赋值
不一样的地方:当删除的元素不存在时,s1.discard不会报错 remove指定元素不存在会报错
s1.pop()
res=s1.pop()
print(s1)#随机删除,取走
print(res)
s1.add()
s1.add(555555)
print(s1)#加的位置随机
s1.isdisjoint()#s1与s2没有共同的元素则返回True
s1={1,2,3}
s2={4,5}
print(s1.isdisjoint(s2))
总结set:
存多个值
无序
set集合是可变类型
二、文件操作
‘’’
1,什么是文件
文件是操作系统提供给用户/应用程序操作硬盘的一个虚拟单位/功能
应用程序/用户对文件的读写操作都是在向操作系统发起系统调用
操作系统接受到调用请求后,会将该请求转换成具体的硬盘操作
2,为何要用文件
应用程序操作文件为了将内存中的数据永久保存到硬盘中
3,如何操作文件
‘’’
文件的路径:找到文件的地址
绝对路径:r’C:\a\b\c\new.txt’
相对路径:相对当前程序所在的文件夹往后找“aaa/a.txt"
f = open(r"aaa/a.txt",mode=‘rt’,encoding=‘utf-8’)#用什么写用什么读
data=f.read()
print(data)
f.close()#一定不要忘了关闭,释放操作系统资源
二、文件模式
2.1控制文件读写内容的模式(不能单独使用,必须与rwa结合使用)
t:
1,读写内容都是以字符串为单位
2、只适用于文本文件
3、必须制定encoding参数
b:
1、读写内容都是以bytes为单位
2、适用于所有文件
3、一定不能制定encoding参数
2.2控制文件读写操作的模式
r:
1,只读模式
2,当文件不存在时就报错
f = open(‘b.txt’,mode=‘rt’,encoding=‘utf-8’)
data=f.read()#read是指针运动读下来
print(data)
f.close()
w
1,只写模式
2,当文件不存在时则报错
3,当文件村爱是文件指针跳到文件开头
f = open(‘c.txt’,mode=‘wt’,encoding=‘utf-8’)
name = input(’>>:’)
f.write(name)
f.close()
f = open(‘c.txt’,mode=‘wt’,encoding=‘utf-8’)
f.write(“egon\n”)
f.write(“张三\n”)
f.write(“李四\n”)
f.close()
a
1,只追加模式
2,当文件不存在时会创建一个空文件,然后文件指针跳到文件开头
3,当文件存在时文件内容不会被清空,文件指针跳到末尾
f = open(‘c.txt’,mode=‘at’,encoding=‘utf-8’)
f.write(‘aaa\n’)
f.write(‘bbb\n’)
f.write(‘ccc\n’)
f.close()
w与a模式的相同点
在文件打开了没有被关闭的情况下,连续的写入,新写入的内容总是跟在老内容之后
w与s模式额不同点
在文件关闭了重新打开的情况下,a模式永远吧文件指针放到文件末尾
案例一:编写一个用户注册功能,注册的内容是账号名和名
surname = input(‘请输入您的账号>>>:’).strip()
pwd = input(‘请输入您的密码>>>:’).strip()
f = open(‘注册.txt’,mode=‘at’,encoding=‘utf-8’)
f.write("%s:%s\n" %(surname,pwd))
f.close()
案例二、编写一个用户验证功能,账号密码来自于文件
surname = input(‘请输入您的账号>>>:’).strip()
pwd = input(‘请输入您的密码>>>:’).strip()
打开文件,读取账号密码与用户输入地账号密码进行比对
f = open(‘注册.txt’,mode=‘rt’,encoding=‘utf-8’)
for line in f:
print(line)
f.close()
for line in f:
name, pwd = line.strip("\n").split(’:’)
if surname == name and pwd == pwd
print(‘登录成功’)
break
else:
print(‘密码或账号输入错误’)
总结:
一、交集及其运用:并集是取二者所有用| 交集二者共有& 差集取二者独有-
父子集:一个集合包含另外一个集合为True说明一个包含另外一个所有值
由于集合的可变性,用update可以增减,在集合中remove指定删除会报错 pop随机删除 discard指定删除但是不会报错 add随机加值
二、文件操作:文件是操作系统提供给用户/应用程序操作硬盘的一个虚拟单位/功能
应用程序/用户对文件的读写操作都是在向操作系统发起系统调用
操作系统接受到调用请求后,会将该请求转换成具体的硬盘操作
应用程序操作文件为了将内存中的数据永久保存到硬盘中
文件存完一定要f.close()释放操作系统资源
t:
1,读写内容都是以字符串为单位
2、只适用于文本文件
3、必须制定encoding参数
b:
1、读写内容都是以bytes为单位
2、适用于所有文件
3、一定不能制定encoding参数
r:
1,只读模式
2,当文件不存在时就报错
f = open(‘b.txt’,mode=‘rt’,encoding=‘utf-8’)
data=f.read()#read是指针运动读下来
print(data)
f.close()
w
1,只写模式
2,当文件不存在时则报错
3,当文件村爱是文件指针跳到文件开头
f = open(‘c.txt’,mode=‘wt’,encoding=‘utf-8’)
name = input(’>>:’)
f.write(name)
f.close()
f = open(‘c.txt’,mode=‘wt’,encoding=‘utf-8’)
f.write(“egon\n”)
f.write(“张三\n”)
f.write(“李四\n”)
f.close()
a
1,只追加模式
2,当文件不存在时会创建一个空文件,然后文件指针跳到文件开头
3,当文件存在时文件内容不会被清空,文件指针跳到末尾
w与a模式的相同点
在文件打开了没有被关闭的情况下,连续的写入,新写入的内容总是跟在老内容之后
w与s模式额不同点
在文件关闭了重新打开的情况下,a模式永远吧文件指针放到文件末尾