本题附件包含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:如果n为'1',抽取数据中录取概率大于等于80%的记录,计算其中大学排名评分大于等于4分的百分比,程序结束。
|
|
2:如果n为'Research',分别统计和输出录取概率大于等于90%的学生和录取概率小于等于70%的学生中,有研究经历的学生占比,程序结束。(百分比保留两位小数)
|
|
3:如果n为'2',输出录取概率大于等于80%的学生中TOEFL分数的平均分,最高分和最低分,程序结束。(保留两位小数)
|
|
4:如果n为'3',输出录取概率大于等于80%的学生中绩点的平均分,最高分和最低分,程序结束。(保留三位小数)
|
|
5:如果非以上输入,则输出'ERROR',程序结束。
def readfile1(filename):#用于筛选出概率大于等于80%,返回列表
ls = []
with open(filename,"r") as fp:
s = fp.readline()
s = fp.readline()
while s:
l = s.strip().split(",")
if eval(l[-1])>=0.8:
ls.append(l)
s = fp.readline()
return ls
def readfile2(filename):#用于筛选出概率大于等于90%以及小于等于70%,返回列表
ls1 = []
ls2 = []
with open(filename,"r") as fp:
s = fp.readline()
s = fp.readline()
while s:
l = s.strip().split(",")
if eval(l[-1])>=0.9:
ls1.append(l)
if eval(l[-1])<=0.7:
ls2.append(l)
s = fp.readline()
return ls1,ls2
n = input()
if n=='1':
ls = readfile1("admit2.csv")
cnt = 0#用于记录排名大于4的个数
for row in ls:
if eval(row[1])>=4:
cnt += 1
print("Top University in >=80%%:%.2f%%"%(cnt/len(ls)*100))
elif n == 'Research':
ls1,ls2 = readfile2("admit2.csv")
#print(ls1)
cnt1 = len([i for i in ls1 if i[-4] == '1'])#大于90%,且有研究经历的个数
cnt2 = len([i for i in ls2 if i[-4] == '1'])#小于70%,且有研究经历的个数
print("Reseach in >=90%%:%.2f%%"%(cnt1/len(ls1)*100))
print("Reseach in <=70%%:%.2f%%"%(cnt2/len(ls2)*100))
elif n=='2':
ls = readfile1("admit2.csv")
l = []#保存所有TOEFL分数
for i in ls:
l.append(float(i[3]))
print("TOEFL Average Score:%.2f"%(sum(l)/len(l)))
print("TOEFL Max Score:%.2f"%max(l))
print("TOEFL Min Score:%.2f"%min(l))
elif n=='3':
ls = readfile1("admit2.csv")
l = []#保存所有绩点分数
for i in ls:
l.append(float(i[-5]))
print("CGPA Average Score:%.3f"%(sum(l)/len(l)))
print("CGPA Max Score:%.3f"%max(l))
print("CGPA Min Score:%.3f"%min(l))
else:
print("ERROR")