学生就业
描述: 键盘输入某个班级各个同学就业的行业名称,行业名称之间用空格间隔(回车结束输入)。完善python代码,统计各行各业就业的学生数量,按数量从高到低方式输出。
例如输入:
交通 金融 计算机 交通 计算机 计算机
输出参考格式如下,其中冒号为英文冒号:
计算机:3
交通:2
金融:1
names=input("请输入各个同学行业名称,行业名称之间用空格间隔(回车结束输入):")
lt = names.split()
d = {}
for i in range(len(lt)):
d[lt[i]]=d.get(lt[i],0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序
for j in range(len(ls)):
zy,num = ls[j]
print("{}:{}".format(zy,num))
本题解答 问题一 :
在模板中修改代码,提取“论语.txt"文件中的原文内容,输出保存到考生文件夹下,文件名为“论语-原文.txt"。具体要求:仅保留“论语.txt"文件中所有【原文】标签下面的内容,不保留标签,并 去掉每行行首空格
及行尾空格
,无空行。原文小括号及内部数字是源文件中注释项的标记,请保留。示例输出文件格式请参考“论语-原文-输出示例.txt"文件。注意:示例输出文件仅帮助考生了解输出格式,不作它用。
代码 1:
fi = open("论语.txt", "r", encoding="utf-8")
fo = open("论语-原文.txt", "w", encoding="utf-8")
flag = False
for line in fi:
if "【原文】" in line:
flag = True
if "【注释】" in line:
flag = False
if flag == True and "【注释】" not in line and "【原文】" not in line:
line = line.strip(" \n")
if line !="": # 判断line是否为空串
fo.write('{}\n'.format(line))
fi.close()
fo.close()
代码 2:
fi = open("论语.txt", "r", encoding="utf-8")
lines = fi.readlines()
fi.close()
flag = False
fo = open("论语-原文.txt", "w", encoding="utf-8")
for line in lines:
if "【注释】" in line:
flag = False
if "【原文】" in line:
flag = True
continue
if flag==True:
fo.write(line.lstrip())
else:
continue
fo.close()
lstrip()函数:https://www.runoob.com/python/att-string-lstrip.html
代码3:
fi = open("论语.txt", "r")
fo = open("论语-原文.txt","w")
flag = False
for line in fi:
if "【原文】" in line:
flag = True
continue
elif "【注释】" in line:
flag = False
elif flag == True and "【原文】" in line:
line = line.strip(" \n")
if line !="":
fo.write(line)
fi.close()
fo.close()
本题解答 问题二:
在模板中修改代码,对“论语-原文.txt" (这是你回答问题一生成的答案文件)或“论语.txt”文件进一步提纯,去掉每行文字中所有的小括号及内部数字,保存为“论语-提纯原文”文件。示例输出文件格式请参考“论语-提纯原文-输出示例.txt"文件。注意:示例输出文件仅帮助考试了解输出格式。不做它用。
代码:
fi = open("论语-原文.txt", "r", encoding="utf-8")
lines = fi.readlines()
fi.close()
fo = open("论语-提纯原文.txt", "w", encoding="utf-8")
for line in lines:
for i in range(999): # 可以打开给定文件看一下最大值
line = line.replace("({})".format(i),"")
fo.write(line)
fo.close()