# 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准...for line in ______:
...
fo.write('{},{},{},{}
'.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('{},{},{},{}
'.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(.(______))
# 该语句用于排序...
'{},{}
'
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('{},{}
'.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()
# 请在...处使用多行代码替换## 注意:其他已给出代码仅作为提示,可以修改
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()
# 请在______处使用一行或多行代码替换## 注意:其他已给出代码仅作为提示,可以修改
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))
# # 以下代码仅供参考。# 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 not in x:
s+=i
f.write(s)
f.close()
# # 以下代码仅供参考。# 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]))