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

 

posted @ 2018-07-03 15:06  巨兽~墨菲特  阅读(207)  评论(0编辑  收藏  举报