【头歌-Python】Python第八章作业(初级)

第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: 
        break
    for c in line.lower(): 
        if c.isalpha(): 
            dic[c] = dic.get(c, 0)+1  

l = 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'

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/a82a461a90.html