国家二级Python(综合应用题)模拟试卷2
综合应用题
1.《笑傲江湖》是金庸的重要武侠作品之一。这里给出一个《笑傲江湖》的网络版本,文件名为“笑傲江湖一网络版.txt”。
请编写程序,统计“笑傲江湖一网络版.txt”中出现在引号内所有字符占文本总字符的比例。采用如下方式打印输出:
占总字符比例:20%。
用程序运行结果的真实数字替换上述示例中数字,均保留整数,字符串中标点符号采用中文字符。
fi=open(’’笑傲江湖一网络版.txt’’,’’r’’,encoding=’utf-8’)
txt=fi.read()
cnt=0
flag=False
for c in txt:
if c==’’“”:
flag=True
if c==’’“”:
flag=False
if flag:
cnt+=1
print(’’占总字符比例:{:.0%}。’’.format(cnt/len(txt)))
fi.close()
解析:
2.draw.py是一个turtle绘图的Python源程序,该程序采用了import turtle模式引入turtle库,并绘制了一个图形。请编写程序,以该源文件作为文件输入,修改文件中代码,将import使用方式改为import turtle as t模式,并输出文件为draw2.py,要求draw2.py运行结果与draw.py一致。
参考程序:
fi=open(’’draw.py’’,’’r’’,encoding=’utf一8’)
fo=open(’’draw2.py’’,’’w’’,encoding=’uff一8’)
txt=fi.read()
txt=txt.replace(’’turtle’’,’’t’’)
txt=txt.replace(’’import t’’,’’import turtle as t’’)
fo.write(txt)
fi.close()
fo.close()
解析:
3.这里有一个中文文本片段:“今天北京有个好天气,大家一起去爬山。”该句子分上下两部分,以逗号和句号分隔。请对该句子进行分词,并以8为随机种子,在上下半句分别重新排列组合词语,并组合输出10种不重复的可能。其中,上下半句词语不交叉,每个可能的组合单行输出,存储到“句子绢合.txt”文件中,格式加下:
北京今天有个好天气,一起大家去爬山。
有个好天气今天北京,一起大家爬山去。
(略)
参考程序:
import jieba
import random
s=’’今天北京有个好天气,大家一起去爬山。’’
k=s.find(’,’)
s1=jieba.lcut(s[0:k])
s2=jieba.lcut(s[k+1:一1])
random.seed(8)
lines=[]
while True:
line=’’’’
random.shuffle(s1)
random.shuffle(s2)
for itern in s1:
line+=item
line+=’’.’’
for item in s2:
line+=item
line+=’’。’’
if line in lines:
continue
else:
lines.append(line)
if len(lines)==10:
break
f=open(’’句子组合.txt’’,’’w’’)
f.write(’’\n’’.join(lines))
f.close()
解析:
4.用字典和列表型变量完成某课程的考勤记录统计。某班有74名同学,名单由name.txt给出,某课程10次考勤数据由文件1.csv、2.csv、…给出。
请编写程序.按如下格式输出10次全勤同学的名字。
全勤同学有:张三,李四,王五,…
参考程序:
ls=[]
for i in range(1,11):
fo=open(str(i)+’’.csv’’,’’r’’,encoding=’’utf一8’’)
for line in fo:
line=line.replace(’’\n’’,’’’’)
ls.append(line.split(’’,’’)[0])
fo.close()
counts={}
for name in 18:
counts[name]=counts.get(name,0)+1
items=list(counts.items())
print(’’全勤同学有:’’,end=’’’’)
for i in range(1,75,1):
word,count=items[i]
if count==10:
printfword.end=’’.’’)
解析:
5.下面是一个传感器采集数据文件sensor-data.txt的一部分:
2018-02-28 01:03:16.33393 19.3024 38.4629 45.08 2.68742
2018-02-28 01:06:16.013453 19.1652 38.8039 45.08 2.68742
2018-02-28 01:06:46.778088 19.175 38.8379 45.08 2.69964
其中,每行是一个读数,空格分隔多个含义,分别包括日期、时间、温度、湿度、光照和电压。
其中,温度处于第3列。
请编写程序,统计并输出传感器采集数据中温度部分的平均值,保留小数点后2位。
参考程序:
#SensorReader.py
#2018—02—28 01:03:16.33393 19.3024 38.4629 45.08 2.68742
try:
f=open(’’sensor—data.txt’’,’’r’’)
avg,cnt=0,0
for line in f:
ls=line.split()
cnt+=l
avg+=eval(ls[2])
print(’’平均的温度值是:{:.2f}’’.format(avg/cnt))
f.close()
except:
print(’’文件打开错误’’)
解析:
本文档预览:3600字符,共3355字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载