#==================================== set 集合 特点为 无序的 且不重复的 =================================
#面试题 = = == = = = = = = = = = = = = 重点
# lis = [1,2,1,2,3,4,4,4,3,6,6,7,7,7,2,2,3,3,]
# #去重:
#1,用算法去做,
#2.转换成集合,再转换过来。
# set1 = set(lis)
# lis = list(set1)
# print(lis)
# 创建集合: 创建set 为不可变数据类型
# set1 = set({1,2,"alxe"})
# set1 = { "alex","wusir","ritian",11,22,33}
# print(set1)
#=============== 增
# add 添加一个元素
# set1.add("景女神")
# print(set1)
#update 迭代的添加
# set1.update("abc",[1,2,3])
# # set1.update([1,2,3])
# print(set1)
# 删除
# set1 = { "alex","wusir","ritian",11,22,33}
#按照元素去删除
# set1.remove("ritian")
# print(set1)
#随机删除pop
# set1.pop()
# print(set1)
#del 删除
# del set1
# print(set1)
# 清空 cleak()
# set1.clear()
# print(set1)
#集合查=================== 只能 循环 去查 ===========
# for i in set1:
# print(i)
# 交集 intersection & 取交集内容
# set1 = {1,2,3,4,5}
# set2 = {4,5,6,7,8}
# # set3 = set1 & set2
# # print(set3)
# print(set1.intersection(set2))
#并集 \ union 两个set 合成一个 重复的合成一个
# print(set1 | set2)
# print(set1.union(set2))
#反交集 ^ symmetric_difference 两个set 合并一个 取 没有重复的
# print(set1 ^ set2)
# print(set1.symmetric_difference(set2))
# 差集 - difference 以set1 不相同的 保留
# print(set1 - set2 ) # 在set1 与 set2 相同的去除.
# print(set2 - set1 ) # 在set2 与 set1 相同的去除
# print(set1.difference(set2)) # 相同的去除 ,
# print(set2.difference(set1))
#超集 < issubset
# set1 = {1,2,3,4,5}
# set2 = {1,2,3,4,5,6,7,8}
# print(set1 <= set2)
# print(set1.issubset(set2)) #返回 True 说明 set1 是 set2 子集
# print(set2 > set1)
# print(set2.issuperset(set1)) #返回 True 说明 set2 包含 set1
# forzenset set 变为i不可变数据类型
# s2 = frozenset(set1)
# print(s2,type(s2))
#文件的 打开方式 与功能
#绝对路径 是根目录下的
#相对路径 是同一个文件夹下的 文件就是相对路径
#f = open("E:\lx.txt",encoding = "gbk",mode = "r")
# open 他是windows系统命令, 注意路径 和 文件的 编码方式
# mmode = "r" 可以不写 , 不写 默认为只读
# r : 只读 r+ 可读可写,先读后写 rb 以字节的模式读文件
#f 变量:f f_obj, obj, file_hl, file_hanlder 文件句柄
# 通过对文件句柄的操作,来得到你想要的东西.
# content = f.read()
# print(content)
# f.close() #将你的文件句柄,或者是动作关闭,节省内存
#rb b表示为bytes 字节 一般用于非文字类型的文件;图片,视频
# 文件的下载和上传的功能用 b M模式
# rb 为二进制模式 不需要编码参数
# f = open("lianxi","rb")
# content = f.read()
# print(content)
# f.close()
# r 读有五种模式
# 1. f.read()全部读出来 因为打开文件是从内存中进行的 如果文件太大
#的话 电脑会蓝屏
#2 f.readline() 按行读 麻烦,没效率
# f = open("lianxi",encoding="utf-8")
# line = f.readline()
# print(line)
# line = f.readline()
# print(line)
# f.close()
# 3 .f.readlines() 每一行作为一个元素, 放在列表中
# f = open("lianxi",encoding="utf-8")
# line = f.readlines()
# print(line)
# f.close()
# 4 . for in 循环去读文件 最好的方式。
# f = open("lianxi",encoding="utf-8")
# for i in f:
# print(i)
# f.close()
# 5 . f.read(n) n 表示自己的个数
# f = open("lianxi",encoding="utf-8")
# content = f.read(12) # r 模式 n 是按照字节获取
# print(content)
#f.close()
# f = open("lianxi",mode = "rb")
# content = f.read(3) # rb 模式 是按照字节读取
# print(content)
# f.close()
# bytes 转化为 str
# s = b"\xe4\xb8\xb0".decode("utf-8")
# print(s)
# 只写w wb w+可读可写,先读后写 如果没有文件,则创建文件写内容,
# 如果有文件则将原文件 内容 全部删除,再写。
# f = open("lianxi2","w",encoding="utf-8")
# f.write("alex")
# f.close()
# f = open("lianxi2","w",encoding="utf-8")
# f.write("alex333")
# f.close()
#追加 a ab 在最后追加 a+可读可写,先读后写
# f = open("lianxi2","a",encoding="utf_8")
# f.write("wusir是xxx")
# f.close()
# seek 移动广标 按照字节跳整位置
# f = open("lianxi","w+",encoding="utf-8")
# f.write("333333")
# f.seek(0) # 移动广标 按照字节调整
# print(f.read())
# f.close()
# truncate 截断
# f = open("lianxi","a",encoding="utf-8")
# f.truncate(3) # 截断按照字节去截 截取前面的内容
# f.close()
# python 内部 的 打开文件的 简单方法:
# with open("lianxi","r",encoding="utf-8")as f1,\
# open("lianxi2","r",encoding="utf-8")as f2:
# print(f1.read())
# print(f2.read())
#python 内部 改动文件 清除版
# import os
# #1,创建一个新文件。
# with open("lainxi",encoding="utf-8")as f1,\
# open("lianxi2","w",encoding="utf-8")as f2:
# #2.读取元文件
# old_content = f1.read()
# new_content = old_content.replace("alex","sb")
# f2.write(new_content)
# #3.将原文件的内容通过你想要额方式进行更改,并写入新文件。
# #4.将原文件删除。
# os.remove("lainxi")
# #5,将新文件重命名原文件名。
# os.rename("lianxi2","lainxi")
#简便版
# import os
# #1,创建一个新文件。
# with open("lainxi",encoding="utf-8")as f1,\
# open("lianxi2","w",encoding="utf-8")as f2:
# #2.读取元文件
# for i in f1:
# i = i.replace("alex","sb")
# f2.write(i)
# #3.将原文件的内容通过你想要额方式进行更改,并写入新文件。
# #4.将原文件删除。
# os.remove("lainxi") # 路径
# #5,将新文件重命名原文件名。
# os.rename("lianxi2","lainxi")