day3 python 集合 文件

时间:2022-12-24 16:04:27

字典是无序的,列表是有序的

a='zhangsan'
print (a[1])
a[2]=222 #字符串不能赋值

集合(set):把不同的元素组成一起形成集合

info=[1,2,34,5,6,7]
info=set(info)
print(info)

info=[1,2,34,5,6,7]
se=set(info)
print(se)

交集(&)

与集合AND等价,交集符号的等价方法是intersection

#交集intersection
info=[1,2,34,5,6,7]
info=set(info)
info1=set([2,4,5,66,77,88])
print(info1.intersection(info)) #取与info1的交集
print(info&info1) #取交集,等价方法是intersection
 
print(info1.union(info)) #并集union
print(info|info1)#等价并集union
print(info1.difference(info))#取info1的不同于info的值,查补(-)等价方法是difference()
print(info.difference(info1))#取info的不同于info1的值,查补(-)等价方法是difference()
print(info-info1) #等价方法是difference()
 
info3=set([2,5])
print(info3.issubset(info1)) #info3是info1的子集
print(info1.issuperset(info3))#info1是info3的父集
print(info)
print(info1)
#对称差集
print (info.symmetric_difference(info1))#交集去掉,互相都没有的留下
print(info^info1) #对称差集 等价方法是symmetric_difference
#简单的去重方式
list=[21,3,4,1,4,3,5]
data=set(list)
print (data)
 
文件的操作
# r只读,w可写,a追加
#我在E盘新建一个空白名为dang的文本文件,然后进行相关操作,
# 在程序的相对路径下找到了这个文件,打开该文件后,发现'nihao'已经写入进去了
f=open('../dang.txt','w')
f.write('nihao')
f.close()
#读文件里的内容
p=open('yesterdate.txt','r')
data=p.read()
print (data)
for i in p.readlines(5): #读前5行
   
print(i)
 
#读文件的前几个字符
p=open('yesterdate.txt','r')
data=p.read(5)#读取文件的前几个字符
print (data)
 
# tell 方法确认了已经移到当前文件位置
# 一个文件对象维护它所打开文件的状态。文件对象的 tell 方法告诉你在打开文件中的当前位置。
# 因为我们还没有对这个文件做任何事,当前位置为 0,它是文件的开始处。
p=open('../dang.txt','r')
print (p.readlines())
print (p.tell()) #计数器-计数
p.seek(10)  #光标移动,从第10个位置开始读取
print(p.readlines())
p.close()
#当with代码块执行完毕时,内部会自动关闭并释放文件资源,
#不用写关闭f.close()
with open('../dang.txt','r') as f:
    print (f.readlines())
    print (f.tell())
    print(f.seek(4))
    print (f.readlines())
 
with open('../dang.txt','r') as f:
    for line in f:
        print (line)
#seek():
#
文件对象的 seek 方法在打开文件中移动到另一个位置。第二个参数指出第一个参数是什么意思:
# 0 表示移动到一个绝对位置 (从文件开始算起),
# 1 表示移到一个相对位置 (从当前位置算起),
#  还有 2 表示文件末尾
 
#进度条
#sys.stdout.write也可以换成print ,sys.stdout.write是标准输入输出
#flush()方法刷新内部缓冲区,像标准输入输出的fflush。这类似文件的对象,无操作。
import sys ,time
for i in range(20):
  sys.stdout.write('#') # sys.stdout 指向控制台,有缓存
 
sys.stdout.flush()
  time.sleep(0.1)
#局部变量
name='alex'
def change_name(name):
     print ('before_name:',name)
     name='zhangsan'
    
print('change_name:',name)
change_name(name)
print ('before name:', name)