Python学习之路,,#上节课复习# l=


#上节课复习# 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\n‘)# # f.write(‘1111\n‘)# # f.write(‘1111\n‘)# 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\r\n# afasfasfsf\r\n# fasfsf\r\n\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x95\x8a‘#print(data.decode(‘utf8‘)# f=open(‘test.py‘,‘wb‘) #b的方式不能指定编码# # f.write(‘1111\n‘) #错误# f.write(bytes(‘1111\n‘,encoding=‘utf8‘))# f.write (‘1111\n‘.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学习之路

评论关闭