xy_eleanor 2023-05-30 09:42 采纳率: 80%
浏览 34
已结题

Python 研究生录取概率统计分析

#题目要求

img

img

img

#我的代码

def read_file(filename):
    """读文件,将数据切分为列表,返回二维列表"""
    with open(filename, 'r', encoding='utf-8') as fr:
        data_ls = [i.strip().split(',') for i in fr]
    return data_ls[1:]


def rank_four(data_ls):
    """接受录取概率大于num的数据的二维列表,
    计算并返回其中大学排名评分大于等于4分的百分比"""
    admit_80 = [x for x in data_ls if float(x[-1])>=0.8]
    top_four = [x for x in admit_80 if float(x[1])>=4]
    percent = round(len(top_four) / len(admit_80),4)*100
    print(f'Top University in >=80%:{percent}%')
    # return f'Top University in >=80%:{percent}%'

def toefl(data_ls):
    admit_80 = [x for x in data_ls if float(x[-1])>=0.8]
    toefl_score = [int(x[3]) for x in admit_80]
    avg_toefl = sum(toefl_score)/len(toefl_score)
    print(f'TOEFL Average Score:{avg_toefl:.2f}')
    print(f'TOEFL Max Score:{max(toefl_score):.2f}')
    print(f'TOEFL Min Score:{min(toefl_score):.2f}')


def gpa(data_ls):
    admit_80 = [x for x in data_ls if float(x[-1])>=0.8]
    gpa_score = [float(x[4]) for x in admit_80]
    avg_toefl = sum(gpa_score)/len(gpa_score)
    print(f'CGPA Average Score:{avg_toefl:.3f}')
    print(f'CGPA Max Score:{max(gpa_score):.3f}')
    print(f'CGPA Min Score:{min(gpa_score):.3f}')


def graduate_student(data_ls):
    admit_90 = [x for x in data_ls if float(x[-1])>=0.9]
    gpa_score = [x[5] for x in admit_90 if x[5]=='1']
    percent = len(gpa_score)/len(admit_90)*100
    print(f'Reseach in >=90%:{percent:.2f}%')
    admit_90 = [x for x in data_ls if float(x[-1]) <= 0.7]
    gpa_score = [x[5] for x in admit_90 if x[5] == '1']
    percent = len(gpa_score) / len(admit_90) * 100
    print(f'Reseach in <=70%:{percent:.2f}%')

def type_judge(input_str):
    """接收一个字符串为参数,根据参数调用不同的函数进行运算。
    """
    if input_str == '1':
        rank_four(data)
    elif input_str == '2':
        toefl(data)
    elif input_str == '3':
        gpa(data)
    elif input_str == 'Research':
        graduate_student(data)
    else:
        print('ERROR')


if __name__ == '__main__':
    file = 'admit2.csv'
    data = read_file(file)
    question = input()
    type_judge(question)

#遇到的问题
上述题目要求中的情况4,不能正常运行、输出结果。请问如何解决?

  • 写回答

2条回答 默认 最新

  • 阳光宅男xxb 2023-05-30 10:06
    关注

    代码逻辑没有问题,应该是你取值的时候 ,下标取值的问题,检查下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 5月30日

悬赏问题

  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?