IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python分别用列表和数组实现成绩计算 -> 正文阅读

[Python知识库]Python分别用列表和数组实现成绩计算

分别用列表(list)和数组(ndarray)实现:

? ? ? ? (1)每位同学的总分,平均分;

? ? ? ? (2)每门课程的平均分,单科最高分,方差;

? ? ? ? (3)每位同学获得的绩点;

? ? ? ? (4)依据奖学金标准,判定该生能申请几等奖学金;

姓名数分高代概率论数理统计
张三78906576
李四89849082
王五72645870
赵六94887978
钱七70808690

  • 用列表实现
list = [['姓名','数分','高代','概率论','数理统计'],
        ['张三','78','90','65','76'],
        ['李四','89','84','90','82'],
        ['王五','72','64','58','70'],
        ['赵六','94','88','79','78'],
        ['钱七','74','80','86','90']]
listheight = len(list)#得到列表行数
listwidth = len(list[0])#得到列表列数

print("\n(1)、(3)、(4)")
sumc = [0 for r in range(listheight)]#造一个空列表存数据
for i in range(1,listheight):
    credit = 0
    minc = 100
    for j in range(1,listwidth):
        sumc[i] = sumc[i] + eval(list[i][j])#计算单人总成绩
        if eval(list[i][j]) < minc :minc = eval(list[i][j])#求单人最低成绩
        #计算绩点
        if eval(list[i][j]) > 90: credit = credit + 4;continue
        if eval(list[i][j]) > 85: credit = credit + 3.7;continue
        if eval(list[i][j]) > 82: credit = credit + 3.3;continue
        if eval(list[i][j]) > 78: credit = credit + 3.0;continue
        if eval(list[i][j]) > 75: credit = credit + 2.7;continue
        if eval(list[i][j]) > 72: credit = credit + 2.3;continue
        if eval(list[i][j]) > 68: credit = credit + 2.0;continue
        if eval(list[i][j]) > 64: credit = credit + 1.5;continue
        if eval(list[i][j]) > 60: credit = credit + 1;continue
    print("{}的总成绩是:{},平均分是:{:.4},绩点是:{:.2f}".format(list[i][0],sumc[i],sumc[i]/(listwidth-1),credit/(listwidth-1)),end="")
    #判断申请的奖学金
    if minc > 85:print(" 可以申请特等优秀学生奖学金\n")
    elif minc > 80:print(",可以申请甲等优秀学生奖学金\n")
    elif minc > 75:print(",可以申请乙等优秀学生奖学金\n")
    elif minc > 70:print(",可以申请丙等优秀学生奖学金\n")
    else:print("\n")

print("\n(2)")
for x in range(1,listwidth):
    total = 0
    maxc = 0
    dnp = 0
    for y in range(1,listheight):
        if eval(list[y][x]) > maxc : maxc = eval(list[y][x]) #比较得出最高分
        total = eval(list[y][x]) + total#计算单科累计分数
    average = total / (listheight-1)#计算平均分
    
    for z in range(1,listheight):#计算方差
        dnp = dnp + (eval(list[z][x])-average)**2
    Dnp = dnp/(listheight-1)
    print("{}的平均分是{:.4},最高分是{},方差是{:.2f}\n".format(list[0][x],average,maxc,Dnp))
  • 用数组实现
    import numpy as np
    data = [['姓名','数分','高代','概率论','数理统计'],
            ['张三','78','90','65','76'],
            ['李四','89','84','90','82'],
            ['王五','72','64','58','70'],
            ['赵六','94','88','79','78'],
            ['钱七','74','80','86','90']]
    w1 = np.array(data)#创建数组
    (a,b) = w1.shape#获得w1数组的维度
    w2 = w1[1:a,1:b].astype(int)#提取数组data内的数据并转整形
    
    w2add1 = np.sum(w2,axis = 1)#数组w2横轴的和:学生总成绩
    w2average1 = np.mean(w2,axis = 1)#数组w2横轴的均值:学生平均分
    w2average0 = np.mean(w2,axis = 0)#数组w2纵轴的均值:单科平均分
    w2var0 = np.var(w2,axis = 0)#数组w2纵轴的方差:单科方差
    w2max0 = w2.copy()
    w2max0.sort(axis = 0)#w2数组纵向升序排序后的数组:单科最高分
    w2max1 = w2.copy()
    w2max1.sort(axis = 1)#w2数组横向升序排序后的数组:学生最低分
    #计算绩点
    w3 = np.array([])
    for i in range(a-1):
        credit = 0
        for j in range(b-1):
            if w2[i,j] > 90: credit = credit + 4;continue
            if w2[i,j] > 85: credit = credit + 3.7;continue
            if w2[i,j] > 82: credit = credit + 3.3;continue
            if w2[i,j] > 78: credit = credit + 3.0;continue
            if w2[i,j] > 75: credit = credit + 2.7;continue
            if w2[i,j] > 72: credit = credit + 2.3;continue
            if w2[i,j] > 68: credit = credit + 2.0;continue
            if w2[i,j] > 64: credit = credit + 1.5;continue
            if w2[i,j] > 60: credit = credit + 1;continue
        w3 = np.append(w3,credit/(b-1))
    print("(1)、(3)、(4)") 
    for x in range(0,a-1):
        print("{}的总成绩是:{},平均分是:{:.4},绩点是:{:.2f}".format(w1[x+1,0],w2add1[x],w2average1[x],w3[x]),end="")
        #判断申请的奖学金
        if w2max1[x,0] > 85:print(" 可以申请特等优秀学生奖学金\n")
        elif w2max1[x,0] > 80:print(",可以申请甲等优秀学生奖学金\n")
        elif w2max1[x,0] > 75:print(",可以申请乙等优秀学生奖学金\n")
        elif w2max1[x,0] > 70:print(",可以申请丙等优秀学生奖学金\n")
        else:print("\n")
    print("(2)")
    for y in range(0,b-1):#计算方差
        print("{}的平均分是{:.4},最高分是{},方差是{:.2f}\n".format(w1[0,y+1],w2average0[y],w2max0[a-2,y],w2var0[y]))
    

    以上是我的一点学习笔记。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-30 12:31:14  更:2021-10-30 12:32:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 3:01:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码