Python Day Three
1.集合
特性:去重、关系测试,测试两组数据之前的交集、差集、并集等关系
#集合
#特性:去重、关系测试,测试两组数据之前的交集、差集、并集等关系
#集合创建方法
#1 列表转集合
list_s = ["das",12,"asd","das",1,3]
list_s = set(list_s)
print(list_s)
#2 直接创建
s = set([1,3,5,7,9])
#添加
s.add('a')#添加一项
s.update([1,20,51])#添加多项
#删除
s.remove('a')#没有会报错
list_s.discard(1)#没有不会报错
#测试"asd"是否是list_s的成员
print('asd' in list_s)
'asd' not in list_s
#交集
print( list_s.intersection(s) )
list_s & s
#并集
print(list_s.union(s))
list_s | s
#差集
print(list_s.difference(s)) #在list_s中,不在s中
list_s - s
#对称差集,把相同的删除,剩余的成为一个集合
print("对称差集",list_s.symmetric_difference(s))
list_s ^ s
#子集
list_3 = set([1,3])
print(list_3.issubset(list_s))
print(list_s.issuperset(list_3))
#判断是否有交集,有交集返回false
print(list_s.isdisjoint(s))
list_4 = list_s.copy()#浅copy
2.文件
'''
f = open("yesterday","a",encoding="utf-8")
f.write("我爱北京天安门,\n")
f.write("天安门上太阳升\n")
f.close()
'''
'''
f = open("yesterday","r",encoding="utf-8")
for index,line in enumerate(f.readlines()):
if index == 9:
print("-----------------分割线----------------")
continue
print(line.strip())
'''
'''
f = open("yesterday","r",encoding="utf-8")
tag = 0
for line in f:
if tag ==9:
print("分割线".center(50,'-'))
tag+=1
continue
tag +=1
print(line.strip())
'''
'''
f = open("yesterday","r",encoding="utf-8")
print(f.tell())#查看指针位置
print(f.readline())
print(f.tell())
f.seek(0)#调整指针位置
#f.seekable() 先判断是否能移动指针,能移则移
print(f.tell())
print(f.encoding)
f.readable()#判断文件是否可读
f.writable()#判断文件是否可写
print(f.name)#文件名
f.flush()#刷新缓冲区
'''
'''
#举例模拟进度条 若没有sys.stdout.flush()刷新则会等缓冲区满了再显示
import sys,time
for i in range(20):
sys.stdout.write("#")
#sys.stdout.flush()
time.sleep(0.1)
#????被骗了
'''
'''
f = open("yesterday","r",encoding="utf-8")
f.truncate()#不写是从零开始截断,写是从头截断到指定位置
'''
#读写模式
f = open("yesterday","r+",encoding="utf-8")
#既能读又能写,写只能写到末尾
print(f.readline())
print(f.readline())
print(f.readline())
f.write("-----------asd-----------")
print(f.readline())
print(f.readline())
print(f.readline())
#f = open("yesterday","a+",encoding="utf-8")#追加读写
#f = open("yesterday","rb",)#二进制文件
#f.write("hello world".encode("utf-8"))#按二进制编码写文件
3.with语句
__Author__ = "Kevin"
#避免忘记写f.close()
with open("yesterday","r",encoding="utf-8") as f:
print(f.readline())
#打开多个文件可这么写
'''
with open("yesterday","r",encoding="utf-8") as f ,\
open("yesterday2","r",encoding="utf-8") as f2:
print(f.readline())
'''
4.文件修改
__Author__ = "Kevin"
f = open("yesterday2","r",encoding="utf-8")
f_new = open("yesterday2.bak","w",encoding="utf-8")
for line in f:
if "忧心忡忡" in line:
line = line.replace("忧心忡忡","AAAAAA")
f_new.write(line)
f.close()
f_new.close()