第1关:统计字母数量
任务描述
读取附件是一篇英文短文,请编写程序统计这篇短文前 n 行中每一个英文字母出现的次数,结果按次数降序排列,次数相同时,按字母表顺序输出。若 n 值大于短文行数,输出整篇文章中每一个英文字母出现的次数(大写字母按小写字母统计)。
The Old Man and the Sea.txt
输入格式
输入一个正整数 n
输出格式
分行输出每个字母的数量,数量占3个字符宽度,居右对齐(参考示例输出)
示例 1
- 输入:
10
- 输出:
e 的数量是 179 个a 的数量是 125 个t 的数量是 121 个h 的数量是 116 个o 的数量是 101 个s 的数量是92 个i 的数量是91 个n 的数量是88 个d 的数量是77 个r 的数量是60 个l 的数量是49 个f 的数量是46 个w 的数量是45 个m 的数量是41 个y 的数量是40 个u 的数量是35 个c 的数量是32 个b 的数量是29 个g 的数量是20 个k 的数量是19 个p 的数量是13 个v 的数量是 9 个q 的数量是 1 个x 的数量是 1 个j 的数量是 0 个z 的数量是 0 个
本作业各关涉及的文件下载链接如下:
CBOOK.csv
university.csv
info.csv
成绩单.csv
admit2.csv
score1034.json
The Old Man and the Sea.txt
The Great Learning.txt
参考代码
n = int(input())dic = { } f = open("step2/The Old Man and the Sea.txt", "r")for i, line in enumerate(f): if i >= n: breakfor c in line.lower(): if c.isalpha(): dic[c] = dic.get(c, 0)+1l = sorted(dic.items(), key=lambda x: (-x[1], x[0]))for k,v in l:print("{} 的数量是 {:>3} 个".format(k, v)) for c in 'abcdefghijklmnopqrstuvwxyz':if c not in dic:print(f"{ c} 的数量是 { 0:>3} 个")
第2关:统计文章字符数
任务描述
读取附件中的文件(utf-8编码),统计并输出文章的前 n 行里共有多少字符(标点符号及换行符按字符统计),以及有多少个不重复的字符?
The Great Learning.txt
输入格式
输入一个正整数 n
输出格式
在一行中输出文章的前 n 行里共有多少字符和有多少个不重复的字符,中间用一个空格分隔
示例 1
- 输入:
1000
- 输出:
2484 432
参考代码
with open('step3/The Great Learning.txt', 'r', encoding='utf-8') as f:num = int(input())txt = ''.join(f.readlines()[:num])print(len(txt), len(set(txt)))
第3关:查询高校信息
任务描述
# 以下代码的作用是:# 打开文件,创建一个名为Uname的对象,Uname.readlines()的作用是将文件内容逐行读取到列表中# 文件的每行为一个以‘\n’结尾的字符串,做为列表ls的一个元素# 列表ls的第一个元素ls[0]的内容是:'序号,学校名称,学校标识码,主管部门,所在地,办学层次,备注\n'with open('university.csv','r',encoding='utf-8') as Uname:ls = Uname.readlines()# print(ls)# 输出:['序号,学校名称,学校标识码,主管部门,所在地,办学层次,备注\n', #'1,北京大学,4111010001,教育部,北京市,本科,\n',#'2,中国人民大学,4111010002,教育部,北京市,本科,\n',#'3,清华大学,4111010003,教育部,北京市,本科,\n',#……#]
附件 ‘university.csv’ 中包含北京主要高校的序号、学校名称、学校标识码、主管部门、所在地、办学层次、备注等信息,以逗号分隔符。 参考提示代码,将文件内容逐行读取到列表中,根据用户输入的学校名,查询学校信息并输出。
university.csv
输入格式
输入一个学校名称
输出格式
输出学校详细信息(注意:行末不得有多余的换行)
示例 1
- 输入:
北京大学
- 输出:
序号,学校名称,学校标识码,主管部门,所在地,办学层次,备注1,北京大学,4111010001,教育部,北京市,本科,
参考代码
with open('step4/university.csv', 'r', encoding='utf-8') as f:txt = f.readlines()s = input().strip()print(txt[0].strip())for line in txt:if s in line.split(',')[1]:print(line)break
第4关:查询高校名
任务描述
# 以下代码的作用是:# 打开文件,创建一个名为Uname的对象,Uname.readlines()的作用是将文件内容逐行读取到列表中# 文件的每行为一个以‘\n’结尾的字符串,做为列表ls的一个元素# 列表ls的第一个元素ls[0]的内容是:'序号,学校名称,学校标识码,主管部门,所在地,办学层次,备注\n'with open('university.csv','r'