Python学习之路
Posted zzcasf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之路相关的知识,希望对你有一定的参考价值。
#上节课复习 # l=[1,2,3,4,5] # print(list(map(str,l))) #reduce # from functools import reduce # l=[1,2,3,4,5] # #reduce(func,l) # res=reduce(lambda x,y:x+y,l,3) # print(res) #filter() # name=[‘alex_sb‘,‘zzc‘] # res=filter(lambda x:not x.endswith(‘sb‘),name) # print(list(res)) # 文件操作 # f=open(‘test.py‘,‘w‘,encoding=‘utf8‘) # # f.write(‘1111 ‘) # # f.write(‘1111 ‘) # # f.write(‘1111 ‘) # f.write(‘amoshi‘) # # f.close() #r+ w+ a+ # f=open(‘test.py‘,‘r+‘,encoding=‘utf8‘) # f.write(‘hallo‘) #覆盖第一行 #b模式 # f=open(‘test.py‘,‘rb‘,encoding=‘utf8‘) #b的方式不能指定编码 # f=open(‘test.py‘,‘rb‘) # data=f.read() # #‘字符串‘--encode----->bytes # #‘字符串‘--decode----->‘字符串‘ # # print(data) #b‘# halloi # afasfasfsf # fasfsf xe4xbdxa0xe5xa5xbdxe5x95x8a‘ #print(data.decode(‘utf8‘) # f=open(‘test.py‘,‘wb‘) #b的方式不能指定编码 # # f.write(‘1111 ‘) #错误 # f.write(bytes(‘1111 ‘,encoding=‘utf8‘)) # f.write (‘1111 ‘.encode(‘utf8‘)) # f=open(‘a.txt‘,‘r‘,encoding=‘latin-1‘) # # print(f.encoding) #文件打开的编码 # data=f.read() # print(data) #f=open(‘test.py‘,‘r+‘,encoding=‘utf-8‘,newline=‘‘)#读取文件中真正的换行符号 # print(f.tell()) # print(f.readlines()) # f.seek(5) #控制光标的移动 按字节处理 # print(f.tell()) # print(f.readlines()) # print(f.read()) # 按字符读取 # f.truncate(10) #截取文件 在写文件 # # f=open(‘seek.txt‘,‘rb‘ ) # print(f.tell()) # f.seek(10,0) #从0开始数字节 # print(f.tell()) # f.seek(3,1) #从xiangduiweizhi # print(f.tell()) # f=open(‘seek.txt‘,‘rb‘ ) # print(f.tell()) # f.seek(10,2) #从文件末尾 # print(f.tell()) # f=open(‘日志文件‘,‘rb‘) # data=f.readlines() # print(data[-1].decode(‘utf-8‘)) #f=open(‘日志文件‘,‘rb‘) # for i in f.readlines(): # print(i) #循环文件的方式 # for i in f: # print(i.decode(‘utf8‘)) # for i in f: # offs=-10 # while True: # f.seek(offs,2) # data=f.readlines() # if len(data)>1: # print(‘文件的最后一行%s‘ %(data[-1].decode(‘utf8‘))) # break # offs*=2 #迭代器和生成器 # 迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopLteration异常,以终止迭代(只能往后走不能往前退) # 可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) # 协议是一种约定,可迭代对象实现了迭代器协议,python内部工具(如 for循环 sum min max) # l=[1,2,3] # #for i in l: #i_l=l.__iter__() i_l.__next__() # print(l[0]) # # iter_l=l.__iter__() #生成可迭代对象 # print(iter_l.__next__()) # index=0 # while index<len(l): # print(l[index]) # index+=1 # x=‘csf‘ # s=x.__iter__() # print(s) # print(s.__next__()) # print(s.__next__()) # print(s.__next__()) # s={1,2,3} # # # for i in s: # # print(i) # iter_s=s.__iter__() # print(iter_s) # print(iter_s.__next__()) # dic={‘a‘:1,‘b‘:2,‘c‘:3} # iter_d=dic.__iter__() # print(iter_d.__next__()) # l=[‘die‘,‘erzi‘,‘sunzi‘,‘chongsunzi‘] # # iter_l=l.__iter__() # print(iter_l) #可迭代对象 # print(iter_l.__next__()) # print(iter_l.__next__()) # print(iter_l.__next__()) # print(iter_l.__next__()) # print(next(iter_l)) #调用iter_l.__next__() #生成器 # x= # x.__next__() # def test(): # yield 1 相当于__iter__() # yield 2 # yield 3 # # g=test() # print(g) # g.__next__() #三元表达式 # name=‘zzc‘ # res=‘haha‘ if name==‘zzc‘ else ‘csf‘ # print(res) #列表解析 # egg_list=[] # for i in range(10): # egg_list.append(‘鸡蛋%s‘,%i) # print(egg_list) # l=[ ‘鸡蛋%s‘ %i for i in range(10)] # l2=[‘鸡蛋%s‘ %i for i in range(10) if i>5] # print(l) # laomuji=(‘鸡蛋%s‘ %i for i in range(10 ))#生成器表达式 # print(laomuji) # print(laomuji.__next__()) # l=[1,2,3,4,5,6] # print(sum(i for i in range(1000000000000)))#生成器表达式 # import time # def test(): # print(‘haha‘) # print(‘haha2‘) # print(‘haha3‘) # yield ‘wo‘ #return # time.sleep(3) # print(‘haha4‘) # yield ‘gg‘ # # res=test() # print(res) # print(res.__next__()) # print(res.__next__()) # def xiadan(): # for i in range(1000): # yield ‘jidan‘ # csf=xiadan() # zzc=csf.__next__() # print(‘qujidan‘,zzc) #eval(i)#转成字典 #生产者消费模型 # import time # def producer(): # ret=[] # for i in range(10000): # ret.append(‘包子%s‘ %i) # return ret # def consumer(res): # for index,baozi in enumerate(res): # time.sleep(0.1) # print(‘第%s个人,吃了%s‘ %(index,baozi)) # # res=producer() # consumer(res) # def test(): # print(‘开始啦‘) # first=yield 1 #retuen1 first=None # print(‘第一次‘,first) # yield 2 # print(‘第二次‘) # # t=test() # res=t.__next__() #next(t) # print(res) # t.send(None) # def producer(): # ret=[] # for i in range(10000): # ret.append(‘包子%s‘ %i) # return ret # def consumer(name): # print(‘我是%s,我要吃包子了‘ %name) # while True: # baozi=yield #yield相当于return # print(‘%s 很开心的吧%s吃了‘ %(name,baozi)) # def producer(): # c1 = consumer(‘陈淑芳‘) # c2 = consumer(‘张志成‘) # c1.__next__() # c2.__next__() # for i in range(10): # time.sleep(1) # c1.send(‘包子‘) # c2.send(‘baozi‘) # producer() # for index,baozi in enumerate(res): # time.sleep(0.1) # print(‘第%s个人,吃了%s‘ %(index,baozi)) # # res=producer() # consumer(res)
以上是关于Python学习之路的主要内容,如果未能解决你的问题,请参考以下文章