【3月考】二级Python最新真题及满分代码合集(综合应用题部分)

【3月考】二级Python最新真题及满分代码合集(综合应用题部分)

第1套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准...for line in ______:... fo.write('{},{},{},{}\n'.format(______))...

第1小问答案(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 fi=open("sensor.txt","r", encoding ="utf-8") fo=open("earpa001.txt","w")for line in fi: ls = line.strip("\n").split(",")if ls[1].count("earpa001")>0: fo.write('{},{},{},{}\n'.format(ls[0], ls[1], ls[2], ls[3])) fi.close() fo.close()

第2小问素材(PY301-2.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准... d ={}... ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 该语句用于排序... fo.write('{},{}\n'.format(______))...

第2小问答案(PY301-2.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 fi =open("earpa001.txt","r") fo =open("earpa001_count.txt","w") d ={}for line in fi: ls = line.strip("\n").split(",") m = ls[2]+"-"+ ls[3] d[m]= d.get(m,0)+1 ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 该语句用于排序for i inrange(len(ls)): fo.write('{},{}\n'.format(ls[i][0], ls[i][1])) fi.close() fo.close()

第2套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 fi =open("论语.txt", ______) fo =open("论语-原文.txt", ______)...for line in fi:... line = line.strip(" \n")...

第1小问答案(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 fi =open("论语.txt","r") fo =open("论语-原文.txt","w") flag =Falsefor line in fi:if"【原文】"in line: flag =Truecontinueif"【注释】"in line: flag =False line = line.strip(" \n")if flag:if line: fo.write(line +"\n") fi.close() fo.close()

第2小问素材(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 fi =open("论语-原文.txt", ______) fo =open("论语-提纯原文.txt", ______)...for line in fi:... line=line.replace(______)...

第2小问答案(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 fi =open("论语-原文.txt","r") fo =open("论语-提纯原文.txt","w")for line in fi:for i inrange(0,30): line=line.replace('({})'.format(i),'') fo.write(line) fi.close() fo.close()

第3套题

在这里插入图片描述


在这里插入图片描述

第1小问素材(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准... ls =[]...print("{}的生日位于{}-{}之间".format(______))

第1小问答案(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 f =open("PY301-SunSign.csv") name =input("请输入星座中文名称")for line in f.read().split("\n"): ls =[]if name in line: ls = line.split(",")print("{}的生日位于{}-{}之间".format(ls[1],ls[2],ls[3])) f.close()

第2小问素材(PY301-2.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准... ls =[]...print("{}({})的生日是{}月{}日至{}月{}日之间".format(______))

第2小问答案(PY301-2.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 f=open("py301-sunsign.csv","r") x=input("请输入星座序号(例如,5):") ls =[]for line in f: ls.append(line.strip('\n').split(',')) num=x.split()for i in num:for row in ls:if row[0]==i:iflen(row[2])==3: m1=row[2][0] d1=row[2][1:3]else: m1=row[2][0:2] d1=row[2][2:4]iflen(row[3])==3: m2=row[3][0] d2=row[3][1:3]else: m2=row[3][0:2] d2=row[3][2:4]print("{}({})的生日是{}月{}日至{}月{}日之间".format(row[1],row[4],m1,d1,m2,d2)) f.close()

第3小问素材(PY301-3.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准... ls =[]...print("{}({})的生日是{}月{}日至{}月{}日之间".format(______))...if flag ==False:print("输入星座序号有误!")...

第3小问答案(PY301-3.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 f=open("py301-sunsign.csv",'r') ls =[]for line in f: ls.append(line.strip(' \n').split(',')) f.close() x=input("请输入星座序号(例如,5):") num=x.strip(' \n').split()for i in num:if0<int(i)<len(ls):for row in ls:if row[0]==i: m1=row[2][0]iflen(row[2])==3else row[2][0:2] d1=row[2][1:3]iflen(row[2])==3else row[2][2:4] m2=row[3][0]iflen(row[2])==3else row[3][0:2] d2=row[3][1:3]iflen(row[2])==3else row[3][2:4]print("{}({})的生日是{}月{}日至{}月{}日之间".format(row[1],row[4],m1,d1,m2,d2))else:print("输入星座序号有误!")

第4套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准... d ={}...print("{}:{}".format(______))

第1小问答案(PY301-1.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 f =open('命运.txt','r') d ={}for i in f.read():if i notin",。?!《》【】“”‘’": d[i]= d.get(i,0)+1 ls =list(d.items()) ls.sort(key =lambda x : x[1], reverse =True)print("{}:{}".format(ls[0][0], ls[0][1])) f.close()

第2小问素材(PY301-2.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准... d ={}... ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 此行可以按照词频由高到低排序...

第2小问答案(PY301-2.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 f =open('命运.txt','r') d ={}for i in f.read():if i notin",:。?!《》【】“”‘’\"\n": d[i]= d.get(i,0)+1 ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 此行可以按照词频由高到低排序for i inrange(10):print(ls[i][0], end ="") f.close()

第3小问素材(PY301-3.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准... d ={}... ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 此行可以按照词频由高到低排序...

第3小问答案(PY301-3.py)

# 以下代码为提示框架# 请在...处使用一行或多行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 f =open('命运.txt','r') fi =open('命运-频次排序.txt','w') d ={}for i in f.read():if i notin"\n": d[i]= d.get(i,0)+1 ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 此行可以按照词频由高到低排序 s =""for k in ls: s +="{}:{}".format(k[0],k[1])+',' fi.write(s[:-1]) f.close() fi.close()

第5套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# 请在______处使用一行代码或表达式替换## 注意:请不要修改其他已给出代码import jieba f =open('data.txt','r') lines = f.readlines() f.close() f =open('out.txt','w')for line in lines: line = ______(1)______ #删除每行首尾可能出现的空格 wordList = ______(2)______ #用结巴分词,对每行内容进行分词 f.writelines('\n'.______(3)______)#将分词结果存到文件out.txt中 f.close()

第1小问答案(PY301-1.py)

# 请在______处使用一行代码或表达式替换## 注意:请不要修改其他已给出代码import jieba f =open('data.txt','r') lines = f.readlines() f.close() f =open('out.txt','w')for line in lines: line = line.strip(' ')#删除每行首尾可能出现的空格 wordList = jieba.lcut(line)#用结巴分词,对每行内容进行分词 f.writelines('\n'.join(wordList))#将分词结果存到文件out.txt中 f.close()

第2小问素材(PY301-2.py)

# 请在______处使用一行代码或表达式替换## 注意:请不要修改其他已给出代码import jieba f =open('out.txt','r')#以读的方式打开文件 words = f.readlines() f.close() D={}for w in _______(1)_________:#词频统计 D[w[:-1]]=_______(2)_________ +1print("曹操出现次数为:{} ".format(_______(3)_________))

第2小问答案(PY301-2.py)

# 请在______处使用一行代码或表达式替换## 注意:请不要修改其他已给出代码import jieba f =open('out.txt','r')#以读的方式打开文件 words = f.readlines() f.close() D={}for w in words:#词频统计 D[w[:-1]]=D.get(w[:-1],0)+1print("曹操出现次数为:{} ".format(D["曹操"]))

第6套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# 请在...处使用多行代码替换## 注意:其他已给出代码仅作为提示,可以修改...#此处可多行 f =open('out1.txt','w')...#此处可用多行 f.close()

第1小问答案(PY301-1.py)

# 请在...处使用多行代码替换## 注意:其他已给出代码仅作为提示,可以修改import jieba fi =open('data.txt','r') f =open('out1.txt','w') words =[]for line in fi.readlines(): line = line.strip('\n') wordlist = jieba.lcut(line)#每一行都是一个list,并且list里已经分词for word in wordlist:iflen(word)>=3and(word notin words): words.append(word)for word in words: f.write(word+'\n') fi.close() f.close()

第2小问素材(PY301-2.py)

# 请在...处使用多行代码替换## 注意:其他已给出代码仅作为提示,可以修改...# 此处可多行 d ={}...# 此处可多行 ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 此行可以按照词频由高到低排序...# 此处可多行

第2小问答案(PY301-2.py)

# 请在...处使用多行代码替换## 注意:其他已给出代码仅作为提示,可以修改import jieba fi =open('data.txt','r') fo =open('out2.txt','w') words =[]for line in fi.readlines(): line = line.strip('\n') wordlist = jieba.lcut(line)#每一行都是一个list,并且list里已经分词for word in wordlist:iflen(word)>=3: words.append(word) d ={}for word in words: d[word]= d.get(word,0)+1 ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 此行可以按照词频由高到低排序 s =''for i in ls: s ='{}:{}'.format(i[0],i[1]) fo.write(s+'\n') fi.close() fo.close()

第7套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# 请在...处使用多行代码替换## 注意:其他已给出代码仅作为提示,可以修改 L=[]#L中的元素是学生原始成绩和总成绩...#此处可多行 L.sort(key=lambda x:x[-1],reverse=True)#按学生总成绩从大到小排序...#此处可多行

第1小问答案(PY301-1.py)

# 请在...处使用多行代码替换## 注意:其他已给出代码仅作为提示,可以修改 fi=open("score301.txt") L=[]for f in fi: st=f.strip("\n").split() grade=sum(list(map(lambda x:eval(x),st[2:]))) st.append(grade) L.append(st) L.sort(key=lambda x:x[-1],reverse=True) fo=open("cand301.txt","w")for s in L[0:10]: fo.write(" ".join(s[:-1])+"\n") fi.close() fo.close()

第2小问素材(PY301-2.py)

''' 输入文件 : cand301.txt 输出文件 : best301.txt '''

第2小问答案(PY301-2.py)

''' 输入文件 : cand301.txt 输出文件 : best301.txt ''' fi=open("cand301.txt","r") fo=open("best301.txt","w")for i in fi: s=i.strip("\n").split()ifmin(list(map(lambda x:eval(x),s[2:])))>=60: fo.write(" ".join(s[:2])+"\n") fi.close() fo.close()

第8套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# 请在______处使用一行或多行代码替换## 注意:其他已给出代码仅作为提示,可以修改 ____________ # 此处可多行 f =open("univ.txt","w") ____________ # 此处可多行 f.close()

第1小问答案(PY301-1.py)

# 请在______处使用一行或多行代码替换## 注意:其他已给出代码仅作为提示,可以修改 fo =open('data.txt','r') lines = fo.read().split('\n') fo.close() L =[]for line in lines:if"alt="in line: L.append(line) S =[]for line in L: point_start = line.find('alt=')+5 point_end = line.find('"', point_start,-1) S.append(line[point_start:point_end]) f =open("univ.txt","w")for school in S: f.write(school) f.write('\n') f.close()

第2小问素材(PY301-2.py)

# 请在______处使用一行或多行代码替换## 注意:其他已给出代码仅作为提示,可以修改 n =0 f =open("univ.txt","r") ____________ # 此处可多行 f.close()print("包含大学的名称数量是{}".format(n))

第2小问答案(PY301-2.py)

# 请在______处使用一行或多行代码替换## 注意:其他已给出代码仅作为提示,可以修改 n =0 k =0 f =open("univ.txt","r") lines = f.read().split('\n') f.close()for school in lines:if(("大学"in school)or("学院"in school))and("大学生"notin school):print(school)if"大学"in school: n +=1elif"学院"in school: k +=1print("包含大学的名称数量是{}".format(n))print("包含学院的名称数量是{}".format(k))

第9套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# # 以下代码仅供参考。#  d ={} lt =list(d.items()) lt.sort(key =lambda x:x[1],reverse =True)

第1小问答案(PY301-1.py)

# # 以下代码仅供参考。# import jieba f2018 =open('data2018.txt','r') line2018 = f2018.read().split('\n') f2018.close() f2019 =open('data2019.txt','r') line2019 = f2019.read().split('\n') f2019.close() d ={}for i in line2018: word = jieba.lcut(i)for j in word:iflen(j)>=2: d[j]= d.get(j,0)+1 lt =list(d.items()) lt.sort(key =lambda x:x[1],reverse =True)print('2018:',end='')for i inrange(9):print('{}:{}'.format(lt[i][0], lt[i][1]), end ='')print(',',end ='')print('{}:{}'.format(lt[9][0], lt[9][1])) d ={}for i in line2019: word = jieba.lcut(i)for j in word:iflen(j)>=2: d[j]= d.get(j,0)+1 lt =list(d.items()) lt.sort(key =lambda x:x[1],reverse =True)print('2019:',end='')for i inrange(9):print('{}:{}'.format(lt[i][0], lt[i][1]), end ='')print(',',end ='')print('{}:{}'.format(lt[9][0], lt[9][1]))

第2小问素材(PY301-2.py)

# # 以下代码仅供参考。# ...... d ={}...... lt =list(d.items()) lt.sort(key =lambda x:x[1],reverse =True)......

第2小问答案(PY301-2.py)

# # 以下代码仅供参考。# import jieba f2018 =open('data2018.txt','r') line2018 = f2018.read().split('\n') f2018.close() f2019 =open('data2019.txt','r') line2019 = f2019.read().split('\n') f2019.close() d ={}for i in line2018: word = jieba.lcut(i)for j in word:iflen(j)>=2: d[j]= d.get(j,0)+1 lt =list(d.items()) lt.sort(key =lambda x:x[1],reverse =True) ls2018 =[]for i inrange(10): ls2018.append(lt[i][0]) d ={}for i in line2019: word = jieba.lcut(i)for j in word:iflen(j)>=2: d[j]= d.get(j,0)+1 lt =list(d.items()) lt.sort(key =lambda x:x[1],reverse =True) ls2019 =[]for i inrange(10): ls2019.append(lt[i][0]) lslike =[]for i in ls2018:if i in ls2019: lslike.append(i)for i in lslike: ls2018.remove(i) ls2019.remove(i)print('共有词语:', end ='')for i in lslike[:-1]:print(i, end =',')print(lslike[-1])print('2019特有:', end ='')for i in ls2019[:-1]:print(i, end =',')print(ls2019[-1])print('2018特有:', end ='')for i in ls2018[:-1]:print(i, end =',')print(ls2018[-1])

第10套题

在这里插入图片描述

第1小问素材(PY301-1.py)

# # 以下代码仅供参考。# ......

第1小问答案(PY301-1.py)

# # 以下代码仅供参考。# import jieba f=open('data.txt','r') data=f.read() f.close() f=open('clean.txt','w') s='' x=',。?、‘’“”;:、 )\n(!'for i in data:if i notin x: s+=i f.write(s) f.close()

第2小问素材(PY301-2.py)

# # 以下代码仅供参考。# import jieba d ={} lt =list(d.items()) lt.sort(key =lambda x:x[1],reverse =True)

第2小问答案(PY301-2.py)

# # 以下代码仅供参考。# import jieba f=open('clean.txt','r') data=f.read() l=jieba.lcut(data) d ={}for i in l:iflen(i)>=3: d[i]= d.get(i,0)+1 lt =list(d.items()) lt.sort(key =lambda x:x[1],reverse =True)for i in lt[:9]:print(i[0],':',i[1],end=',',sep='')print(lt[9][0],':',lt[9][1],sep='') f.close()

第11套题

在这里插入图片描述

例题素材(PY301.py)

# 请在......处写多行代码# 建议不修改其他代码import jieba fp =open("红楼梦.txt",encoding='utf-8') ss=fp.read() fp.close()......print(cnt)......print(len(dc))...... lt.sort(key=lambda x:x[1], reverse=True)for x in lt[0:2]:......

参考答案(PY301.py)

# 请在......处写多行代码# 建议不修改其他代码import jieba fp =open("红楼梦.txt",encoding='utf-8') ss=fp.read() fp.close() point =",。:;?" cnt =0for i in ss:if i in point: cnt +=1print(cnt) words = jieba.lcut(ss) dc =[]for i in words:iflen(i)>=2: dc.append(i) dc1 =set(dc)print(len(dc1)) d ={}for i in dc: d[i]= d.get(i,0)+1 lt =list(d.items()) lt.sort(key=lambda x:x[1], reverse=True)for x in lt[0:2]:print("{},{}".format(x[0],x[1]))

第12套题

例题素材(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码#import jieba fs =open("八十天环游地球.txt","r") lss = fs.readlines() ____________ dels=' "?!:,。' lens =0for lr in lss: …… print("共{}个非空行".format(lens)) alens =0 wlens =0for lr in lss: …… print("剩余字符数{}, 词语数{}".format(alens, wlens)) fo = ____________ for lr in lss: …… fo.close()

参考答案(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码#import jieba fs =open("八十天环游地球.txt","r") lss = fs.readlines() dels=' "?!:,。' lens =0 new_list =[]for lr in lss:if lr !="\n": lens +=1 new_str =""for i inrange(len(lr)):if lr[i]in dels:passelse: new_str += lr[i] new_list.append(new_str)print("共{}个非空行".format(lens)) alens =0 wlens =0 word_list =[]for lr in lss: alens +=len(lr) words = jieba.lcut(lr)for i in words: word_list.append(i) wlens =len(word_list)print("剩余字符数{}, 词语数{}".format(alens, wlens)) fo =open("八十天环游地球-章节.txt","w")for lr in lss:if"章 "in lr: fo.write(lr) fo.close()

第13套题

在这里插入图片描述

例题素材(PY301.py)

## 在……上补充一行或多行代码# 可修改其他代码#第一问:统计素材文件中学生人数 f1=open('data301.txt','rt') stu_lst=…… …… #第二问:计算所有学生的平均分 stu_dic={}for stu_str in stu_lst:if'\n'in stu_str: stu_str=stu_str.replace('\n','') stu=stu_str.split(':') name=stu[0] score=stu[1].split(',')[1] …… avg=sum([int(score)for score in stu_dic.values()])/len(stu_dic) …… #第三问:输出学生分数信息到result文件中 name_score=list(stu_dic.items()) …… name_score_lst=[item[0]+","+item[1]+"\n"for item in name_score] f2=open('result301.txt','wt') …… f2.close()

参考答案(PY301.py)

## 在……上补充一行或多行代码# 可修改其他代码#第一问:统计素材文件中学生人数 f1=open('data301.txt','rt') stu_lst = f1.readlines()print("素材文件中学生的人数是{}".format(len(stu_lst))) f1.close()#第二问:计算所有学生的平均分 stu_dic={}for stu_str in stu_lst:if'\n'in stu_str: stu_str=stu_str.replace('\n','') stu=stu_str.split(':') name=stu[0] score=stu[1].split(',')[1] stu_dic[name]= score avg=sum([int(score)for score in stu_dic.values()])/len(stu_dic)print("所有学生的平均分是{:.1f}".format(avg))#第三问:输出学生分数信息到result文件中 name_score=list(stu_dic.items()) name_score_lst=[item[0]+","+item[1]+"\n"for item in name_score] f2=open('result301.txt','wt')for i in name_score_lst: f2.write(i) f2.close()

第14套题

在这里插入图片描述

例题素材(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码#  fi =open("data301.txt","r") ss=___________ print(ss.count("<a")) fi.seek(0) count =0 ls =[] flag =0 …… fi.close()print(count) fp =open("images.txt","w") …… fp.close()

参考答案(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码#  fi =open("data301.txt","r") ss=fi.read()print(ss.count("<a")) fi.seek(0) count =0 ls =[] flag =0for i in ss.split("\n"):if".JPG"in i: count +=1 fi.close()print(count) fp =open("images.txt","w")for i in ss.split("\n"):if".JPG"in i: start_point = i.find("http://") end_point = i.find(".JPG") fp.write(i[start_point:end_point+4]+"\n") fp.close()

第15套题

在这里插入图片描述

例题素材(PY301.py)

## 在……上补充一行或多行代码# 可修改其他代码# stop_word=['我们','同时','之后','更好','这些','进行']#第一问:读文件,统计文件中的字符数 f1=open('data301.txt','rt') …… #第二问:统计词频,输出长度大于1的词的个数,排除特殊词import jieba …… for word in txt_wordslist: …… print("长度大于1且不相同的词的个数是{}。".format(len(word_count.items()))) …… wordlist.sort(key=lambda x:x[1],reverse=True) …… print("词频最大的词是:{}".format(topword))#第三问:将长度大于1并且词频最大的词所在的句子,排除特殊词 sentence_list=txt.split('。') …… for sentence in sentence_list:if topword in sentence: …… 

参考答案(PY301.py)

## 在……上补充一行或多行代码# 可修改其他代码# stop_word=['我们','同时','之后','更好','这些','进行']#第一问:读文件,统计文件中的字符数 f1=open('data301.txt','rt') txt = f1.read()print("素材文件字符个数是{}。".format(len(txt))) f1.close()#第二问:统计词频,输出长度大于1的词的个数,排除特殊词import jieba txt_wordslist = jieba.lcut(txt) count =0 word_count ={}for word in txt_wordslist:if(len(word)>1)and(word notin stop_word): word_count[word]= word_count.get(word,0)+1print("长度大于1且不相同的词的个数是{}。".format(len(word_count.items()))) wordlist =list(word_count.items()) wordlist.sort(key=lambda x:x[1],reverse=True)for i in wordlist:if i[0]notin stop_word: topword = i[0]breakprint("词频最大的词是:{}".format(topword))#第三问:将长度大于1并且词频最大的词所在的句子,排除特殊词 sentence_list=txt.split('。') fo =open("out301.txt","w")for sentence in sentence_list:if topword in sentence: fo.write(sentence+"\n") fo.close()

第16套题

在这里插入图片描述


在这里插入图片描述

例题素材(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码# fi =open("data301.txt","r") dc ={} name ='' count =0 flag =1for line in fi:if'"name":'in line: name = line.____________[1].strip(' ,"\n') flag =1elif'"value":'in line and flag ==1: dx =int(line.split(':')[1].strip(' \n')) dc[name]= dx flag =0 ____________ fi.close()print("一共有{}个国家".format(count)) …… print("确诊人数最多的国家是{},人数是{}".format(____________)) lw =0 lz =0 …… print("确诊人数超过1W的国家有{}个".format(lw))print("确诊人数为0的国家有{}个".format(lz))

参考答案(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码# fi =open("data301.txt","r") dc ={} name ='' count =0 flag =1for line in fi:if'"name":'in line: name = line.split(':')[1].strip(' ,"\n') flag =1elif'"value":'in line and flag ==1: dx =int(line.split(':')[1].strip(' \n')) dc[name]= dx flag =0 count +=1 fi.close()print("一共有{}个国家".format(count)) lt =list(dc.items()) lt.sort(key=lambda x:x[1], reverse =True)print("确诊人数最多的国家是{},人数是{}".format(lt[0][0],lt[0][1])) lw =0 lz =0for i in lt:if i[1]>=10000: lw +=1elif i[1]==0: lz +=1print("确诊人数超过1W的国家有{}个".format(lw))print("确诊人数为0的国家有{}个".format(lz))

第17套题

在这里插入图片描述

例题素材(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码# 可以修改其他代码## 问题1:withopen("data301.csv","r")as f: lines=____________ for i inrange(5):print(lines[i])# 问题2:deftotal(lst):sum=0for i in lst:sum+=i returnsum yslst=[] zzlst=[] zylst=[]for line in lines[1:]: lst=line.split(',') …… print('统计,疑似,重症,治愈')print('总数,{},{},{}'.format(total(yslst),total(zzlst),total(zylst)))print('最大值,{},{},{}'.format(max(yslst),max(zzlst),max(zylst)))# 问题3: d={} ls=[]for line in lines[1:]: lst=line.split(',') d[lst[0]]=eval(lst[1]) …… for line in l: …… print(','.join(ls))

参考答案(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码# 可以修改其他代码## 问题1:withopen("data301.csv","r")as f: lines=f.read().split("\n")for i inrange(5):print(lines[i])# 问题2:deftotal(lst):sum=0for i in lst:sum+=i returnsum yslst=[] zzlst=[] zylst=[]for line in lines[1:]: lst=line.split(',')if lst !=[""]: yslst.append(eval(lst[1])) zzlst.append(eval(lst[2])) zylst.append(eval(lst[3]))print('统计,疑似,重症,治愈')print('总数,{},{},{}'.format(total(yslst),total(zzlst),total(zylst)))print('最大值,{},{},{}'.format(max(yslst),max(zzlst),max(zylst)))# 问题3: d={} ls=[]for line in lines[1:-1]: lst=line.split(',') d[lst[0]]=eval(lst[1]) l =list(d.items()) l.sort(key =lambda x:x[1], reverse =True) avg = total(yslst)/(len(lines)-2)for line in l:if line[1]> avg: ls.append(line[0])print(','.join(ls))

第18套题

在这里插入图片描述

例题素材(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码# 可以修改其他代码#import jieba fs =open("data301.txt","r") lss = fs.read() fs.close()for c in",。?!:":print('"{}"的个数为{}个'.format(____________)) ds ={} words=jieba.lcut(lss)for w in words: …… for i inrange(2,6):print('{}字词有{}个'.format(____________)) …… 

参考答案(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码# 可以修改其他代码#import jieba fs =open("data301.txt","r") lss = fs.read() fs.close()for c in",。?!:":print('"{}"的个数为{}个'.format(c,lss.count(c))) ds ={} words=jieba.lcut(lss)for w in words: ds[len(w)]= ds.get(len(w),[]) ds[len(w)].append(w)for i inrange(2,6):print('{}字词有{}个'.format(i,len(ds[i]))) ls = ds[i] d ={}for j in ls: d[j]= d.get(j,0)+1 lt =list(d.items()) lt.sort(key =lambda x:x[1], reverse =True)print(lt[0][0])

第19套题

在这里插入图片描述

例题素材(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码# 可修改其他代码import jieba fs =open("data301.txt","r") lss = fs.readlines() fs.close() lens =0for lr in lss:if lr !="\n": lens +=1print("共{}个非空行。".format(lens)) ts ={}for lr in lss:if lr.strip()!="": words = lr.strip().split(":") ts[words[0]]= ts.get(words[0],[]) ts[words[0]].append(words[1]) names = ts.keys()print("共{}个人发言:{}".format(len(ts),",".join(names)))for r in ts.keys(): words =[]for i in ts[r]: words += jieba.lcut(i) d ={}for i in words:iflen(i)>1: d[i]= d.get(i,0)+1 lt =list(d.items()) lt.sort(key =lambda x:x[1], reverse =True)print("{}说了{}个词,最多的词是:{}".format(r,len(lt), lt[0][0]))

参考答案(PY301.py)

## 在____________上补充代码# 在……上补充一行或多行代码# 可修改其他代码import jieba fs =open("data301.txt","r") lss = fs.readlines() fs.close() lens =0for lr in lss:if lr !="\n": lens +=1print("共{}个非空行。".format(lens)) ts ={}for lr in lss:if lr.strip()!="": words = lr.strip().split(":") ts[words[0]]= ts.get(words[0],[]) ts[words[0]].append(words[1]) names = ts.keys()print("共{}个人发言:{}".format(len(ts),",".join(names)))for r in ts.keys(): words =[]for i in ts[r]: words += jieba.lcut(i) d ={}for i in words:iflen(i)>1: d[i]= d.get(i,0)+1 lt =list(d.items()) lt.sort(key =lambda x:x[1], reverse =True)print("{}说了{}个词,最多的词是:{}".format(r,len(lt), lt[0][0]))

Read more

【C++】第十七节—二叉搜索树(概念+性能分析+增删查+实现+使用场景)

【C++】第十七节—二叉搜索树(概念+性能分析+增删查+实现+使用场景)

好久不见,我是云边有个稻草人 《C++》本文所属专栏—持续更新中—欢迎订阅 目录 一、二叉搜索树的概念 二、二叉搜索树的性能分析 三、二叉搜索树的插入 SearchBinaryTree.h test.cpp 四、⼆叉搜索树的查找 【只有一个3】 【有多个3】  五、⼆叉搜索树的删除 六、二叉搜索树的实现代码 SearchBinaryTree.h test.cpp  七、二叉搜索树key和key/value使用场景 7.1 key搜索场景 7.2 key/value搜索场景 7.3 key/value⼆叉搜索树代码实现 .h .cpp 正文开始—— 一、二叉搜索树的概念 ⼆叉搜索树⼜

By Ne0inhk
C++ 游戏开发:从零到英雄的进阶之旅

C++ 游戏开发:从零到英雄的进阶之旅

在当今数字化时代,游戏开发已然成为极具吸引力与挑战性的领域。C++ 作为游戏开发中极为常用的语言之一,凭借其高性能和强大功能,长久以来都是游戏开发者的心头好。若你对游戏开发满怀热忱,却不知如何起步,这篇博客就将为你揭开 C++ 游戏开发的神秘面纱,引领你踏上从新手到高手的进阶之路。 一、为什么选择 C++ 进行游戏开发? 在游戏开发的广袤天地里,编程语言的抉择至关重要。C++ 以其独有的优势,成为众多开发者的不二之选: (一)高性能 游戏开发过程中需要处理海量的实时计算任务,涵盖图形渲染、物理模拟以及用户输入响应等关键环节。C++ 具备直接访问硬件的能力,能够极为高效地利用系统资源,切实保障游戏运行的流畅性。以处理复杂的 3D 场景渲染为例,C++ 能够快速对大量的顶点数据、纹理信息进行处理和计算,精准地将虚拟的 3D 世界呈现在玩家眼前,其性能优势在这种场景下展现得淋漓尽致。 (二)强大的功能 C++ 全力支持面向对象编程(OOP),这使得开发者能够通过类和对象来有条不紊地组织代码。比如在开发一款角色扮演游戏时,我们可以创建 “角色” 类,

By Ne0inhk
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

文章目录 * 前言 * C++的类型转换 * 四种命名的强制类型转换操作符 * static_cast * reinterpret_cast * const_cast * dynamic_cast * RTTI(这个了解一下就行了) * C++的IO流 * C++文件的IO流 * stringstream 前言 在 C++ 编程体系中,类型转换与 IO 流是支撑程序数据处理与交互的两大核心环节。类型转换关乎数据在不同类型间的安全传递与运算适配,而 IO 流则负责程序与外部设备(如键盘、屏幕、文件)之间的数据输入与输出,二者共同构成了 C++ 程序实现功能、交互信息的基础框架。 C 语言中的类型转换方式虽简洁,却存在可视性差、难以追踪的问题,容易在复杂程序中引发潜在的逻辑错误。为解决这一痛点,C++ 引入了四种命名明确的强制类型转换操作符 ——static_cast、reinterpret_

By Ne0inhk
C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战 💡 学习目标:掌握 C++ 标准库中条件变量的使用方法,理解条件变量与互斥锁的协同工作机制,能够解决多线程间的等待-通知问题。 💡 学习重点:std::condition_variable 的核心接口、wait() 与 notify_one()/notify_all() 的配合使用、生产者-消费者模型的实现。 49.1 条件变量的引入场景 在多线程编程中,我们经常会遇到线程需要等待某个条件满足后再执行的场景。 比如生产者线程生产数据后,消费者线程才能消费;队列不为空时,消费者才能从中取数据。 如果仅用互斥锁实现,消费者线程只能不断轮询检查条件,这会造成 CPU 资源的浪费。 ⚠️ 注意事项:单纯的轮询会导致 CPU 空转,降低程序运行效率,条件变量就是为解决这类问题而生的。 举个简单的轮询反例,消费者不断检查队列是否有数据: #include<iostream>

By Ne0inhk