python入门第十八天_练习
练习1:使用文件读取,找出文件中最长的行,并把它打印出来?
文件:
总之掌握有天火教至高秘术的昆林树不能落在外人手上
这可不是一般的落在外人手上啊
而是要为奴啊
为奴后还不是主子说什么就是什么
一旦让昆林树交出天火教的秘术怎么办
因此
退一万步说
让昆林树出个意外死了也行
否则他钱复成于天火教而言
万死难辞其咎
1 #-*- coding:utf-8 -*- 2 ''' 3 Created on 2018年7月3日 4 5 @author: Administrator 6 ''' 7 from functools import reduce 8 f=open('小重山','r',encoding='utf-8',errors='ignore') 9 10 11 dic=[] 12 for i in f: 13 dic.append(i.strip()) 14 15 16 17 18 def fnn(x,y): 19 if len(x)>len(y): 20 return x 21 else: 22 return y 23 24 25 print(reduce(fnn, dic)) 26 27 print(dic) 28 29 f.close()
结果:
总之掌握有天火教至高秘术的昆林树不能落在外人手上 ['总之掌握有天火教至高秘术的昆林树不能落在外人手上', '这可不是一般的落在外人手上啊', '而是要为奴啊', '为奴后还不是主子说什么就是什么', '一旦让昆林树交出天火教的秘术怎么办', '因此', '退一万步说', '让昆林树出个意外死了也行', '否则他钱复成于天火教而言', '万死难辞其咎']
改进:
1 #-*- coding:utf-8 -*- 2 ''' 3 Created on 2018年7月3日 4 5 @author: Administrator 6 ''' 7 from functools import reduce 8 f=open('小重山','r',encoding='utf-8',errors='ignore') 9 10 # dic=[] 11 # for i in f: 12 # dic.append(i.strip()) 13 # 14 # 15 # 16 def fnn(x,y): 17 if len(x)>len(y): 18 return x 19 else: 20 return y 21 # 22 # print(reduce(fnn, dic)) 23 # dic=[i for i in f] 24 print(reduce(fnn,[i for i in f])) 25 26 # print(dic) 27 28 f.close()
结果:
总之掌握有天火教至高秘术的昆林树不能落在外人手上
改进二:
1 from functools import reduce 2 3 def fnnn(x,y): 4 if len(x)<len(y): 5 x=y # x,y=y,x 此处只需要最大的一行 6 return x 7 8 print(reduce(fnnn,[i for i in open('小重山','r',encoding='utf-8',errors='ignore')]))
结果:
总之掌握有天火教至高秘术的昆林树不能落在外人手上
如果需要求最长的一样的字数???
1 print(max(len(i.strip()) for i in open('小重山','r',encoding='utf-8',errors='ignore')))
结果:
24