小工具知识网

当前位置: 首页 > 行业知识 > 【头歌-Python】Python第八章作业(初级)

行业知识

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

2026-11-01 09:34:48 来源:互联网转载

禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106

参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301

第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

      参考代码

      # 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106n = 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

        参考代码

        # 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106with 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,教育部,北京市,本科,

            参考代码

            # 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106with 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',encoding='utf-8') as Uname:    ls = Uname.readlines()print(ls)

            输出:

            ['序号,学校名称,学校标识码,主管部门,所在地,办学层次,备注\n',  '1,北京大学,4111010001,教育部,北京市,本科,\n','2,中国人民大学,4111010002,教育部,北京市,本科,\n', '3,清华大学,4111010003,教育部,北京市,本科,\n', …… ]

            附件’university.csv’中包含北京主要高校的序号、学校名称、学校标识码、主管部门、所在地、办学层次、备注等信息,以逗号分隔符。

            参考提示代码,将文件内容逐行读取到列表中,根据用户输入一个关键字,查询学校名称包含用户输入关键字的学校名并输出。

            university.csv

            输入格式

            输入一个关键字

            输出格式

            包含关键字的全部学校名

            示例

            • 输入:
              中央
              • 输出:
                中央财经大学中央音乐学院中央美术学院中央戏剧学院中央民族大学

                参考代码

                with open('step5/university.csv', 'r', encoding='utf-8') as f:    name = input()    for line in f.readlines():        names = line.split(',')[1]        if name in names:            print(names)

                第5关:通讯录读取

                任务描述

                info.csv

                读取附件中的csv文件(通讯录信息),放入字典中(后两项以列表形式做为字典的值),并依次输出其中的信息。文件内数据不需要修改,输出时数据之间以空格间隔。

                • 编码格式使用utf-8
                • 输入‘A’时,按行输出文件信息
                • 输入‘D’时,直接输出字典内容
                • 输入其他数据时,输出“ERROR”

                  输入格式

                  输入一个字符

                  输出格式

                  张自强 12652141777 材 料庚同硕 14388240417 自动化王 岩 11277291473 文 法杨 彪 18807390227 材 料姚梦雪 14101628144 文 法黄国宝 19439017361 材 料麦啟聪 18844865547 信 息陈天润 14622379485 材 料项子烜 14226176598 文 法任晋宏 15076627604 信 息王玉云 11128829508 文 法周佳乐 10826074903 文 法

                  输入输出示例

                  示例1:

                  • 输入:A
                  • 输出:
                    张自强 12652141777 材 料.....

                    示例2:

                    输出:D

                    输出:

                    {'张自强': ['12652141777', '材\u3000料'], '庚同硕': ['14388240417', '自动化'],...}

                    参考代码

                    # 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106s = input()if s not in 'AD':    print('ERROR')   else:    with open('step6/info.csv', 'r', encoding='utf-8') as f:        if s == 'A':            print(f.read().replace(',', ' '))        else:            dic = {}            for line in f.readlines():                l = line.strip().split(',')                dic[l[0]] = l[1:]            print(dic)

                    第6关:JSON转列表

                    任务描述

                    读取附件中的JSON文件,转为列表输出。

                    score1034.json

                    输入格式

                    输入一个正整数 n

                    输出格式

                    输出列表的前n个元素,格式如示例所示

                    示例

                    • 输入:
                      2
                      • 输出:
                        [['姓名', '学号', 'C', 'C++', 'Java', 'Python', 'C#', '总分'], ['刘雨', '0121701100507', '20', '20', '20', '16', '20', '96']]

                        参考代码

                        # 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106import jsonwith open('step7/score1034.json', 'r', encoding='utf-8') as f:    txt = json.loads(f.read())    data = [['姓名', '学号', 'C', 'C++', 'Java', 'Python', 'C#', '总分']]    for dic in txt:        data.append(list(dic.values()))    n = int(input())    print(data[:n])

                        第7关:利用数据文件统计成绩

                        任务描述

                        利用附件中的成绩数据进行成绩统计,根据总分进行升序排序后,输出总分最低分和最高分,按总分升序输出前n名同学和后n名同学成绩信息(n为非负数,当n大于数据行数时,按实际行数输出),输出每题的平均成绩。

                        (注:数据文件中最后一列是总分,第4-9列每列为一道题的成绩,打开与关闭文件代码已经给出)

                        成绩单.csv

                        输入格式

                        输入一个正整数

                        输出格式

                        参考示例

                        示例

                        • 输入:
                          2
                          • 输出:
                            最低分0分,最高分30分[['12529', '朱佳年', '0121701100203', '0', '0', '0', '0', '0', '0', '0'], ['12347', '李世祥', '0121701100208', '0', '0', '0', '0', '0', '0', '0']][['11916', '杨旺霖', '0121701100527', '5', '5', '5', '5', '5', '5', '30'], ['11955', '罗家威', '0121701100622', '5', '5', '5', '5', '5', '5', '30']][3.11, 3.24, 2.97, 3.24, 2.57, 3.24]

                            参考代码

                            # 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106with open('step8/成绩单.csv', 'r', encoding='utf-8') as f:    n = int(input())    ls = []    for line in f.readlines():        ls.append(line.strip('\n').split(','))    ls.sort(key = lambda x:eval(x[9]))    print('最低分{}分,最高分{}分'.format(ls[0][9], ls[-1][9]))    print(ls[:n])    if n 

上一篇:揭秘PHP网站源码查询方法与技巧

下一篇:WPS字间距调整秘籍,美化文档排版,轻松成为排版高手!