attention:文件里会有空格,空行。需要去除多余的才方便寻找。寻找直接用max再比对就好了
and:重复的单词也要输出,对输出顺序没要求
要求:
data.txt中保存有n个单词,每个单词一行。
请编写一个程序从文件中将单词读出,找到最长的单词,
然后将其保存到result.txt中。程序须保存test.py中
输出格式:
用以下格式输出最长的字符串到**result.txt**中:
The longest word is: zhang
如果有多个单词,则每个单词用英文逗号间隔(结尾无逗号):
The longest words are: zhang,xiang
y=[]
x=[]
z=[]
w=[]
r=[]
with open('data.txt','r') as fp:
with open('result.txt','w') as f:
for i in fp.readlines():
if i.split(): #i不是空行
i=i.strip() #把单词两边空格删除
w.append(i)
for line in w:
f.write(line+'\n')#把单词分行
with open('result.txt','r') as f:
x=f.readlines()
for h in x:
r.append(h.strip())#仅剩单词
#至此,单词处理完成,全部为一行一个,没有换行符,空格和空行
for i in r:
y.append(len(i)) #y里面存放的是r中元素的长度
m=max(y)
for j in r:
if len(j)== m:
z.append(j)
q=','.join(z)#变成字符串格式,并用‘,’连接
with open('result.txt','w') as f:
if len(z)==1:
f.write('The longest word is: {0}'.format(q))
else:
f.write('The longest words are: {0}'.format(q))