for c in a:
for j in range(3):
s+=c[j]*b[j] #累加乘积求和 print(s) 四、综合应用题
46、答案如下:
names=[\命运\寻梦\ for name in names:
fi=open(name+\网络版.txt\ fo=open(name+\字符统计.txt\ txt=fi.read() d={}
for c in txt:
d[c]=d.get(c,0)+1 del d['\\n']
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse=True) for i in range(100):
ls[i]=\ fo.write(\ fi.close() fo.close() [解析]
这是一个综合应用题,考核文本处理能力。
问题1:程序的流程是分别从“命运-网络版.txt”和“寻梦-网络版.txt”两个文档中读入字符,统计各自所出现的次数、排序,并输出到文档。鉴于相似功能已经在其他模拟试卷中做过解析,这里不再赘述。参考代码及注释如下: names=[\命运\寻梦\
for name in names: #遍历names列表,对两个文本进行处理 fi=open(name+\网络版.txt\ fo=open(name+\字符统计.txt\ txt=fi.read() d={}
for c in txt: #统计字符出现的次数 d[c]=d.get(c,0)+1 del d['\\n']
ls=list(d.iterns())
ls.sort(key=lambda x:x[1],reverse=True) #排序 for i in range(100): #整理写入文档
ls[i]=\ fo.write(\ fi.close() fo.close()
问题2:判断两个文档中的相同字符,基本方法是逐一从文档中读入字符,判断该字符是否在另外一个文档中,如果存在,则统计输出。参考代码及注释如下: def getList(name):
f=open(name+\字符统计.txt\ words=f.read().split(',') for i in range(len(words)):
words[i]=words[i].split(':')[0] f.close() return words
def main():
fo=open(\相同字符.fxt\ ls1=getList(\命运\ ls2=getList(\寻梦\ ls3=[]
for c in ls1: #获得一篇文章的字符
if c in ls2: #判断该字符是否在另外文章中 ls3.append(c) #如果存在,则放入公共字符列表 fo.write(\ fo.close()
main()47、答案如下: def getList(name):
f=open(name+\字符统计.txt\ words=f.tead().split(',') for i in range(len(words)):
words[i]=words[i].split(':')[0] f.close() return words def main():
fo=open(\相同字符-txt\ ls1=getList(\命运\ ls2=getList(\寻梦\ ls3=[]
for c in ls1: if c in ls2: ls3.append(c)
fo.write(\ fo.close() main()