赞
踩
禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106
参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301
读取附件是一篇英文短文,请编写程序统计这篇短文前 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/131312106
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} 个")
读取附件中的文件(utf-8编码),统计并输出文章的前 n 行里共有多少字符(标点符号及换行符按字符统计),以及有多少个不重复的字符?
The Great Learning.txt
输入一个正整数 n
在一行中输出文章的前 n 行里共有多少字符和有多少个不重复的字符,中间用一个空格分隔
示例 1
1000
2484 432
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106
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)))
# 以下代码的作用是:
# 打开文件,创建一个名为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/131312106
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
# 以下代码的作用是:
# 打开文件,创建一个名为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)
info.csv
读取附件中的csv文件(通讯录信息),放入字典中(后两项以列表形式做为字典的值),并依次输出其中的信息。文件内数据不需要修改,输出时数据之间以空格间隔。
输入一个字符
张自强 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/131312106
s = 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)
读取附件中的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/131312106
import json
with 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])
利用附件中的成绩数据进行成绩统计,根据总分进行升序排序后,输出总分最低分和最高分,按总分升序输出前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/131312106
with 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 <= len(ls):
print(ls[(len(ls)-n):])
else:
print(ls)
res = []
for i in range(3, 9):
num = 0
for d in ls:
num += eval(d[i])
res.append(eval(f'{num/len(ls):.2f}'))
print(res)
admit2.csv
本题附件包含500名国际高校的研究生申请人的相关信息和预测的录取概率数据。
下表为文件中字段及对应含义:
Serial No | GRE Score | TOEFL Score | University Rating | SOP | LOR | CGPA | Research | Chance of Admit |
---|---|---|---|---|---|---|---|---|
编号1-500 | GRE分数 | 托福分数 | 本科大学排名分 | 个人陈述分数 | 推荐信分数 | 本科绩点 | 研究经历(1/0) | 录取概率(0-1之间) |
研究经历:1代表有,0代表无
录取概率:0-1之间的小数,如0.73代表73%
请按照下列要求对文件中数据进行统计和分析,并严格按照下面所示格式输出结果。
(描述中示例仅为格式示例,数据与测试用例无关)
输入一个数据n
1
Top University in >=80%:11.11%
Research
Research in >=90%:91.03%
Research in <=70%:22.10%
2
TOEFL Average Score:300.12
TOEFL Max Score:323.00
TOEFL Min Score:299.00
3
CGPA Average Score:4.333
CGPA Max Score:4.910
CGPA Min Score:4.134
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106
def readfile1(filename):
with open(filename, 'r') as f:
res = []
for line in f.readlines()[1:]:
ls = line.strip().split(',')
if eval(ls[-1])>=0.8:
res.append(ls)
return res
def readfile2(filename):
with open(filename, 'r') as f:
ls1, ls2 = [], []
for line in f.readlines()[1:]:
ls = line.strip().split(',')
if eval(ls[-1])>=0.9:
ls1.append(ls)
if eval(ls[-1])<=0.7:
ls2.append(ls)
return ls1, ls2
n = input()
filename = "step9/admit2.csv"
if n == '1':
ls = readfile1(filename)
count = 0
for d in ls:
if eval(d[1])>=4:
count += 1
print("Top University in >=80%%:%.2f%%"%(count/len(ls)*100))
elif n == 'Research':
ls1, ls2 = readfile2(filename)
count1 = len([0 for d in ls1 if d[-4]=='1'])
count2 = len([0 for d in ls2 if d[-4]=='1'])
print("Research in >=90%%:%.2f%%"%(count1/len(ls1)*100))
print("Research in <=70%%:%.2f%%"%(count2/len(ls2)*100))
elif n == '2':
ls = [eval(d[3]) for d in readfile1(filename)]
print("TOEFL Average Score:%.2f"%(sum(ls)/len(ls)))
print("TOEFL Max Score:%.2f"%max(ls))
print("TOEFL Min Score:%.2f"%min(ls))
elif n == '3':
ls= [eval(d[-5]) for d in readfile1(filename)]
print("CGPA Average Score:%.3f"%(sum(ls)/len(ls)))
print("CGPA Max Score:%.3f"%max(ls))
print("CGPA Min Score:%.3f"%min(ls))
else:
print("ERROR")
CBOOK.csv
读取附件中的图书数据信息,并按照下列要求对数据进行统计分析(文件编码为utf-8)
文件包含信息格式:编号,书名,出版社,现价,原价,评论数,推荐指数
其中评论数形式为’1290021条评论’,书名可能包含书的简单描述,形如’雪落香杉树(福克纳奖得主,全球畅销500万册)'。
要求:
下列示例仅表明输入输出格式,输出的数据不是本题答案数据
示例 1
record
600
示例 2
rank
188
188
全球通史:从史前史到21世纪(第7版修订版上下册,当当独家赠送全球通史主题笔记本)
北京大学出版社
59.6
96
286574条评论
100%推荐
示例 3
maxcomment
追风筝的人(2018年新版) 2444573条评论
活着(2017年新版) 2278231条评论
东野圭吾:解忧杂货店(胡歌、王俊凯、刘昊然倾情推荐,东野圭吾长篇小说代表作,这家店帮你找回内心流失的东西) 2132927条评论
.....
.....
示例 4
maxname
2
戒了吧,拖延症――写给年轻人的拖延心理学(人生有限,拖延有害,彻底告别拖延带来的恐惧和焦虑。学会时间管理,看这一本就足够,终结拖延症,你就已经成功超越了93%的人)
银火箭少年科幻系列(8册。亚洲首位“雨果奖”得主刘慈欣主编,根据《流浪地球》改编的电影大年初一上映。套装内图书获银河奖特等奖等多项国际大奖,全球销量超500万册)
示例 5
python
无数据
# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/131312106
def MaxName(l, n):
res = sorted(l, key=lambda x:(len(x[1]), eval(x[3])), reverse=True)
for d in res[:n]:
print(d[1])
def MinName(l, n):
res = sorted(l, key=lambda x:(len(x[1])))
for d in res[:n]:
print(d[1])
def PriceNow(l):
res = sorted(l, key=lambda x:eval(x[3]), reverse=True)
for i in res[0][:-3]:
print(i)
for i in res[-1][:-3]:
print(i)
def PriceOrgin(l):
res = sorted(l, key=lambda x:eval(x[3]), reverse=True)
for i in res[0][:-3]:
print(i)
for i in res[-1][:-3]:
print(i)
def MaxComment(l):
res = sorted(l, key=lambda x:eval(x[-2][:-3]), reverse=True)
for i in res[:10]:
print(i[1], i[-2])
def MinComment(l):
res = sorted(l, key=lambda x:eval(x[-2][:-3]))
for d in res[:10]:
print(d[1], d[-2])
def Rank(l):
n = input()
for d in l:
if n == d[0]:
for i in d:
print(i)
break
with open('step10/CBOOK.csv', 'r') as f:
l = [line.strip().split(',') for line in f.readlines()[1:]]
c = input().lower()
if c == 'record':
print(len(l))
elif c == 'rank':
Rank(l)
elif c == 'maxname':
n=eval(input())
MaxName(l, n)
elif c == 'minname':
n = eval(input())
MinName(l, n)
elif c == 'nprice':
PriceNow(l)
elif c == 'oprice':
PriceOrgin(l)
elif c == 'maxcomment':
MaxComment(l)
elif c == 'mincomment':
MinComment(l)
else:
print('无数据')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。