day3 python 集合 文件

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

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)

 

posted @ 2016-08-11 18:53  梅子472  阅读(143)  评论(0编辑  收藏  举报