学习内容:
1、Python集合
2、Python文件操作
3、Python字符编码
4、Python函数介绍
一、Python集合
1)集合的创建:
list_1 = [1,3,5,7,26,8,65]list_1=set(list_1) list_2 =set([2,4,5,6,7,9,65]) print (list_1,list_2)
2)集合间的操作:
print ("交集:", list_1.intersection(list_2)) #交集print("并集",list_1.union(list_2)) #并集print("差集:",list_1.difference(list_2)) #差集 in list_1 but in list_2print (list_2.difference(list_1))list_3 = set([5,7])print (list_3.issubset(list_2)) #判断是否是子集print(list_2.issuperset(list_3)) ##判断是否是父集 print(list_1.symmetric_difference(list_2))#对称差集 , 取list_1和list_2对方都没有的取出来,即将都有的去掉。
list_4 = set([98,97])print (list_1.isdisjoint(list_4)) #交集为空,返回True ;否则返回False
list_1.add(999) #添加一项list_1.update([888,777,666])#添加多项
#list_1.remove(‘H‘)#删除print("HHHH:",list_1.discard(‘o‘)) #删除字,若有删除,若没有什么也不做
#x in a#测试x 是否是 a 的成员#x not in a #测试x是否不在 a 的成员
二、Python文件操作
1)文件的写(w):
新建文件并将内容写进该文件,若有文件则覆盖掉。
f=open(‘yesterday2‘,‘w‘,encoding=‘utf-8‘)f.write("wo ye bu zhi dao ni zai shuo shen me!")
2)文件的读(r):
f=open(‘yesterday2‘,‘r‘,encoding=‘utf-8‘)print(f.read()) #全部读出
print (f.readline()) #只读一行
print (f.readlines()) #读出剩余的行
2)文件的追加(a):
f=open(‘yesterday2‘,‘a‘,encoding="utf-8") #文件句柄,将文件的内容最佳到文件的后面
3)文件的遍历:
#要把内容全部读出来,浪费内存,慢for index,line in enumerate(f.readlines()): if index ==9: priint ("---------------我是分割线---------------") contnue print (line.strip())
#高校的做法count=0for line in f: if count ==9: print("-------------分割线------------") print (line.strip()) else: print (line.strip()) count+=1
4)文件的修改:
f = open(‘yesterday2‘,‘r‘,encoding=‘utf-8‘)f_bak = open(‘yesterday2_bak‘,‘w‘,encoding=‘utf-8‘)for line in f: if "当我年少轻狂" in line: line=line.replace(‘当我年少轻狂‘,‘年少轻狂‘) f_bak.write(line)f.close()f_bak.close()
5)文件的其他操作:
print(f.encoding)f.seek(0) #处理光标的位置print (f.fileno()) #系统处理文件的编号print(f.flush()) #等到缓存满了 一起刷到内存中print(f.buffer) #刷新缓存
f.truncate(20) #不写就是清空 ,从头开始截断
f=open(‘yesterday‘,‘r+‘,encoding="utf-8") #可以先读后写 ------读写模式
f=open(‘yesterday‘,‘w+‘,encoding="utf-8") #可以先写后读-------写读模式
f=open(‘yesterday‘,‘a+‘,encoding="utf-8") #追加读写
f=open(‘yesterday‘,‘rb‘) #读取二进制文件 在socked的网络传输过程中只能用二进制格式;下载文件二进制
f=open(‘yesterday‘,‘wb‘) #二进制的写
f.write("hello ,binary\n".encode()) # bytes 转成二进制格式
三、Python字符编码
unicode为万国码,所有其他字符编码间的转换都要经过unicode, "string".decode("one").encode("another"):
文件先解码(decode)成unicode,并告诉unicode我当前的编码格式, 之后再编码(encode)为即将使用改文件的程序的编码格式
四、Python函数介绍
1)函数的定义:
def test1(): print("the funtion ")
def test1(x): #带参数 "the funtion " x +=1 return x
def sum(a,b,*args): #*args接收N个位置参数,转换成元组 print(a) print(b) print(args)print(sum(100,1,1)
def sun1(**kwargs): #**kwargs接收N个关键字参数,转换成字典 print (kwargs) print (kwargs[‘name‘])
2)函数的递归:
#递归必须要有一个明确的结束条件#问题的规模较上一次要小#执行效率低,递归会导致栈溢出 函数调用通过计算机的栈
# def calc(m):# print (m)# if m<100:# return calc(m+1)# else:# pass
3)高阶函数:
#变量可以指向函数,函数参数可以接受变量,一个函数也可以接受另一个函数做为参数,这种函数就叫做高阶函数
def add(a,b,f): return f(a)+f(b) res=add(3,-6,abs)print(res)
时间: 2024-10-23 13:52:19