国家二级Python(综合应用题)模拟试卷3
综合应用题
1.《射雕英雄传》是金庸的重要武侠作品之一。这里给出一个《射雕英雄传》的网络版本,文件名为“射雕英雄传一网络版.cxt”。
请编写程序,统计该文件出现的所有中文词语及出现次数(不要求输出),并输出按照出现次数最多的8个词语,采用如下方式打印输出。
词语1,词语2,词语3,词语4,词语5,词语6,词语7,词语8
参考程序:
import jieba
fi=open(”射雕英雄传一网络版-txt”,”r”,encoding=’utf一8’)
txt=fi.read()
fi.close()
ls=jieba.lcut(txt)
d={}
for w in ls:
d[w]=d.get(w,0)+1
for x in’’\n,。’’“:”:
del d[x]
rst=[]
for i in range(8):
mx=0
mxj=0
for j in d:
if d [j]>mx:
mx=d[j]
mxj=j
rst.append(mxj)
del d[mxj]
print(’’。’’.join(rst))
解析:
2.恺撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,即循环左移3位,对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
基础中文字符的Unicode编码范围是[0x4e00,0x9fa5],共20902个字符。请以10451位循环移位数量,编写中文文本的类恺撒密码加解密方法。
原文字符P,其密文字符C满足如下条件:
C=(P+10451)mod 20902
解密与加密方法一致,满足:
P=(C+10451)mod 20902
标点符号、英文字母不加密。
下面是一段测试文本:
输入(加解密前):全国计算机等级考试二级Python语言程序设计
输出(加解密后):稻翐拎勄逍剶嗔地挂睟嗔 Python挚愭离蝢拫拎
参考程序:
s=input(’’输入(加解密前):’’)
d={}
for c in[0x4e00,0x9fa5]:
for i in range(20902):
d[chr(i+c)]=chr((i+10451)%20902+c)
print(’’输出(加解密后):’’+’’’’.join([d.get(c,c)for c in s]))
解析:
3.大胆预测2018年至2020年我国五个城市的房产价格走势如下所示,同时保存为“price2020.csv”文件。其中,2018/2019/2020年所列出的数值为当前年份与前一年份的涨跌比。例如,2018列数据是预测2018年房价以2017年价格为基数(100)的比值,2019列数据是预测2019年房价以2018年价格为基数(100)的比值,2020列数据是预测2020年房价以2019年价格为基数(100)的比值。
城市 2018 2019 2020
北京 112 130 140
上海 123 140 121
广州 99 95 130
深圳 101 129 94
沈阳 93 92 87
请编写程序,以2017年为基数,预测2018/2019/2020年房价涨跌比,生成一个类似文件,名称为“price2020a2017.csv”,保留整数。
参考程序:
fi=open(’’price2020.csv’’,’’r’’)
fo=open(’’price2020a2017.csv’’,’’w’’)
ls=[]
for line in fi:
line=line.replace(’’\n’’,’’’’)
ls.append(line.split(’’,’’))
for i in range(1,len(ls)):
for j in range(1,len(ls[i])):
if ls[i][j].isnumeric():
if j==1:
base=100
else:
base=float(Is[i][j-1])
ls[i][j]=’’{:.0f}’’.format(base*float(ls[i][j])/100)
for row in ls:
fo.write(’’,’’.join(row)+’’\n’’)
fi.close()
fo.close()
解析:
4.文件ngchina.htm1保存了网页源代码,请将该页面中图片的URL提取出来,并输出所有图片的URL。输出格式如下:
第1个URL:http://image.ngchina.com.cn/2018/0829/20180829012548753.jpg第2个URL:http://image.ngchina.com.cn/2018/0823/thumb_469_352_20180823121155508.Jpg
参考程序:
#读取HTML文件内容
def getHTMLlines(htmlpath):
f=open(htmlpath,’’r’’,encoding=’utf一8’)
ls=f.readlines()
f.close()
return ls
#用于解析文件并提取图片的URL
def extractlmageUrls(htmllist):
urls=[]
for line in htmllist:
if’img’in line:
url=line.split(’src=’)[-1].split(’’’’)[1]
if’http’in url:
urls.append(ur1)
return urls
#将获取的链接输出到屏幕上
def showResults(urls):
count=1
for ur1 in urls:
print(’’第{:2}个URL:{}’’.format(count,ur1))
count+=1
#主程序:1读取文件;2解析并提取其中的图片链接;3输出提取结果到屏幕
def main():
inputfile=’’ngchina.html’’
htmllines=getHTMLlines(inputfile)
imageUrls=extractImageUrls(htmllines)
showResul
本文档预览:3600字符,共4537字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载