精华内容
下载资源
问答
  • 1:如果一个班有5个同学考试成绩如下,需要我们通过程序的方式来对成绩从高到低来排序学生成绩如下:88,52,67,93,87(各个同学的成绩不相等)方法一:list = [88,52,67,93,87] #将这5个学生的成绩存入列表或者数组...

    刚接触程序语言的时候,经常会用到一些排序的问题,按照算法运行效率和理解上面来看的话,有的时候我们可以记录一些比较便于理解的;

    1:如果一个班有5个同学考试成绩如下,需要我们通过程序的方式来对成绩从高到低来排序,学生成绩如下:

    88,52,67,93,87(各个同学的成绩不相等)

    方法一:

    list = [88,52,67,93,87] #将这5个学生的成绩存入列表或者数组

    rank = [1,1,1,1,1] #新设置一个列表(数组)用于存放list列表中各个元素的排位情况(长度需要跟list一致),这个地方之所以把每个元素设置为1,程序中可以理解

    new=[0,0,0,0,0] #定义一个新的列表(数组),用于存放排序后的成绩

    for j in range(0,5): #此处用python的语法,用C语言可以是 for(j=0,j<5,j++),此循环设置的目的是用于遍历list列表(数组)

    sm = list[j] #将列表(数组)中第一个值赋值给 sm,暂存list元素的值,用于设定后面的值来跟本值的比较,从list第一个元素(88)开始---87结束

    for m in list: #再设定一个循环来提取list的每个元素与刚才暂存的sm来比较

    if m > sm:

    rank[j]=rank[j]+1 #此处是比较关键的,当后面提取出来list元素的值比暂存的sm的值大的时候,rank[j]对应的值就加1;这里要说明一下,比如提取的是“93”,因为93比

    #88的值要大,所以按照排序的位置,93就要排到88的前面,如果93排的是“1”号位置,那么88通过本次比较就往后移动1位;因本来我们设定的rank里  #面各元素的值都是1,于是当我们把里面的值“+1”的次数统计出来后,自然就记录好了这个数在整个数列中应该排的位置。

    print(rank) #于是得出的rank的结果是:[2,5,4,1,3] ,证明,list中的各个数据对应的排序位置应该是2,5,4,1,3

    for n in range(0,5): #再次设置一个5次循环,用于遍历list

    new[rank[n]-1]=list[n] #分别把list当前的值替换新列表中排位中的数据,比如88应该排第二位,那就替换新列表中2号位置的数据,new[1](rank[n]-1 列表和数组位置从0开始 #的,所以此处记得“-1”)

    print(new) #执行后结果:[93, 88, 87, 67, 52]

    分析:如果按照冒泡排序的方式,就是每次比较2个数字,譬如A,B,C,D,E,步骤:1,A与B比较,如果A大 2,拿A去跟C比较,如果A比C大 3,A跟D比较,如果A比D大。4,A与E比较。那么问题来了,A是比较出来了,是最大的,关键是B,C,D,E之间还得重新比较一下又要重新交换位置,尤其是数据多了以后,程序就不太便于理解;而设置一个跟原数组同长度的数组后,就便于理解和记录每个元素应该排放的位置了;当然这是个例子,本题数据是不相同的,那么数据相同了的话,要做多两层判断了,留下供思考;

    方法二:因python中有自带的一些实用的函数,处理起来就非常的简便了

    list2=[93, 88, 87, 67, 52]

    list2.sort(reverse=True)

    print(list2) #此时不管里面是否有相同分数的,都可以正常排序出来(只是我们没有研究sort内部的算法)

    展开全文
  • python-学生成绩排序

    万次阅读 2019-01-28 22:39:44
    学生成绩排序(类与对象练习)(10分) 题目内容: 设计一个学生类(Student),其中的数据成员有:字符串类型sname表示录入的学生姓名,整型值mscore代表学生的数学成绩,整型值cscore代表学生的语文成绩,整型值...

    学生成绩排序(类与对象练习)(10分)

    题目内容:

    设计一个学生类(Student),其中的数据成员有:字符串类型sname表示录入的学生姓名,整型值mscore代表学生的数学成绩,整型值cscore代表学生的语文成绩,整型值escore代表学生的英语成绩。

    然后要求根据录入的学生成绩(各不相同),输出总分最高的学生姓名和各科目成绩。

     

     

    输入格式:

    输入分为4个部分:

    先输入学生姓名,以空格分隔;

    然后输入学生的数学成绩(各不相同的正整数),也以空格分隔;

    再输入学生的语文数学成绩(各不相同的正整数),也以空格分隔。

    最后输入学生的英语数学成绩(各不相同的正整数),也以空格分隔。

    学生姓名个数和成绩个数一定会相同。

     

    输出格式:

    共一行,为总分最高的学生姓名和各科目成绩,以空格分隔。

     

    输入样例:

    jack tom

    95 84

    90 75

    85 90

     

    输出样例:

    jack 95 90 85

    时间限制:500ms内存限制:32000kb

    程序:

    names=input().split()
    mscores=list(map(int,input().split()))
    cscores=list(map(int,input().split()))
    escores=list(map(int,input().split()))
    class Student:
        def __init__(self,n,m,c,e):
            self.n,self.total=n,m+c+e
            self.m,self.c,self.e=m,c,e
        def __lt__(self, other):
            return self.total<other.total
        def __str__(self):
            return '%s %d %d %d' %(self.n,self.m,self.c,self.e)
    s=[]
    for i in range(len(names)):
        s.append(Student(names[i],mscores[i],cscores[i],escores[i]))
    s.sort()
    print(s[-1])

     

    展开全文
  • 将表格中的数据按成绩从高到底进行排列,输出排序结果。将每个学生成绩作为一个字典对象存入列表,用列表sort()方法完成自定义排序
  • 本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下基本功能:输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。...

    本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下

    基本功能:

    输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。

    打印学生的所有信息:通过一个打印函数就可以把所有的信息打印在屏幕上。

    修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面。

    删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除。

    按学生成绩进行排序: 这个功能是按照学生的成绩进行排序,对学生的信息进行操作。

    查找学生信息:这个功能通过输入学号,查找该学生的信息,如果有该学号就输出该学生的信息,没有该学号就提示输入的学号不存在。

    初始化功能

    系统在开始使用之前先进行初始化功能,判断students.txt文件中是否保存的有学生的信息,如果有就把文件的内容读取出来,供接下来的操作使用,如用没有就初始化一个空的列表,用来保存用户的输入,程序中接下来的所有数据都会保存在该列表中相当与一个数据缓冲区。

    首先是打开文件操作,对文件中的内容进行读取操作,由于在文件中保存的内容是由空格进行分割的,并且每一个学生的信息都占用一行,首先读出所有的内容,先进行按照换行进行分割,得到每个人的信息,然后再对每个人的信息进行安装空格分隔,得到每个人的详细信息包括用户的姓名,学号,成绩。

    def Init(stulist): #初始化函数

    print "初始化......"

    file_object = open('students.txt', 'r')

    for line in file_object:

    stu = Student()

    line = line.strip("\n")

    s = line.split(" ")

    stu.ID = s[0]

    stu.name = s[1]

    stu.score = s[2]

    stulist.append(stu)

    print "初始化成功!"

    成绩排序实现

    这部分代码是按照学生成绩的高低进行排序,在实现的时候,首先是把所有人的成绩放到一个列表里面然后使用插入排序,按照成绩的大小对StuList中保存的学生信息的地址进行排序

    def Sort(stulist): #按学生成绩排序

    Stu = []

    sum_count = []

    for li in stulist:

    temp = []

    temp.append(li.ID)

    temp.append(li.name)

    temp.append(int(li.score1))

    temp.append(int(li.score2))

    temp.append(int(li.score3))

    temp.append(int(li.sum))

    sum_count.append(int(li.sum))

    Stu.append(temp)

    #print sum_count

    #print Stu;

    #print stulist

    insertSort(sum_count, stulist)

    #print stulist;

    display(stulist)

    def insertSort(a, stulist):

    for i in range(len(a)-1):

    #print a,i

    for j in range(i+1,len(a)):

    if a[i]

    temp = stulist[i]

    stulist[i] = stulist[j]

    stulist[j] = temp

    界面截图如下:

    201811191712382.jpg

    源码:

    # -*- coding: UTF-8 -*-

    import os

    import re

    import numpy as np

    class Student: #定义一个学生类

    def __init__(self):

    self.name = ''

    self.ID =''

    self.score1 = 0

    self.score2 = 0

    self.score1 = 0

    self.sum = 0

    def searchByID(stulist, ID): #按学号查找看是否学号已经存在

    for item in stulist:

    if item.ID == ID:

    return True

    def Add(stulist,stu): #添加一个学生信息

    if searchByID(stulist, stu.ID) == True:

    print"学号已经存在!"

    return False

    stulist.append(stu)

    print stu.name,stu.ID, stu.score1, stu.score2, stu.score3, stu.sum;

    print "是否要保存学生信息?"

    nChoose = raw_input("Choose Y/N")

    if nChoose == 'Y' or nChoose == 'y':

    file_object = open("students.txt", "a")

    file_object.write(stu.ID)

    file_object.write(" ")

    file_object.write(stu.name)

    file_object.write(" ")

    file_object.write(str(stu.score1))

    file_object.write(" ")

    file_object.write(str(stu.score2))

    file_object.write(" ")

    file_object.write(str(stu.score3))

    file_object.write(" ")

    file_object.write(str(stu.sum))

    file_object.write("\n")

    file_object.close()

    print u"保存成功!"

    def Search(stulist, ID): #搜索一个学生信息

    print u"学号 姓名 语文 数学 英语 总分"

    count = 0

    for item in stulist:

    if item.ID == ID:

    print item.ID, '\t' ,item.name,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',item.sum

    break

    count = 0

    if count == len(stulist):

    print "没有该学生学号!"

    def Del(stulist, ID): #删除一个学生信息

    count = 0

    for item in stulist:

    if item.ID == ID:

    stulist.remove(item)

    print "删除成功!"

    break

    count +=1

    # if count == len(stulist):

    # print "没有该学生学号!"

    file_object = open("students.txt", "w")

    for stu in stulist:

    print stu.ID, stu.name, stu.score1,stu.score2, stu.score3, stu.sum

    file_object.write(stu.ID)

    file_object.write(" ")

    file_object.write(stu.name)

    file_object.write(" ")

    file_object.write(str(stu.score1))

    file_object.write(" ")

    file_object.write(str(stu.score2))

    file_object.write(" ")

    file_object.write(str(stu.score3))

    file_object.write(" ")

    file_object.write(str(stu.sum))

    file_object.write("\n")

    file_object.close()

    # print "保存成功!"

    file_object.close()

    def Change(stulist, ID):

    count = 0

    for item in stulist:

    if item.ID == ID:

    stulist.remove(item)

    file_object = open("students.txt", "w")

    for stu in stulist:

    #print li.ID, li.name, li.score

    file_object.write(stu.ID)

    file_object.write(" ")

    file_object.write(stu.name)

    file_object.write(" ")

    file_object.write(str(stu.score1))

    file_object.write(" ")

    file_object.write(str(stu.score2))

    file_object.write(" ")

    file_object.write(str(stu.score3))

    file_object.write(" ")

    file_object.write(str(stu.sum))

    file_object.write("\n")

    # print "保存成功!"

    file_object.close()

    stu = Student()

    stu.name = raw_input("请输入学生的姓名")

    while True:

    stu.ID = raw_input("请输入学生的ID")

    p = re.compile('^[0-9]{3}$')

    if p.match(stu.ID):

    break

    else:

    print "输入的有错误!"

    while True:

    stu.score1 = int(raw_input("请输入学生语文成绩"))

    if stu.score1 <= 100 and stu.score1 > 0 :

    break

    else:

    print "输入的学生成绩有错误!"

    while True:

    stu.score2 = int(raw_input("请输入学生数学成绩"))

    if stu.score2 <= 100 and stu.score2 > 0 :

    break

    else:

    print "输入的学生成绩有错误!"

    while True:

    stu.score3 = int(raw_input("请输入学生英语成绩"))

    if stu.score3 <= 100 and stu.score3 > 0 :

    break

    else:

    print "输入的学生成绩有错误!"

    stu.sum = stu.score1 + stu.score2 + stu.score3

    Add(stulist,stu)

    def display(stulist): #显示所有学生信息

    print u"学号 姓名 语文 数学 英语 总分"

    for item in stulist:

    print item.ID, '\t' ,item.name,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',item.sum

    def Sort(stulist): #按学生成绩排序

    Stu = []

    sum_count = []

    for li in stulist:

    temp = []

    temp.append(li.ID)

    temp.append(li.name)

    temp.append(int(li.score1))

    temp.append(int(li.score2))

    temp.append(int(li.score3))

    temp.append(int(li.sum))

    sum_count.append(int(li.sum))

    Stu.append(temp)

    #print sum_count

    #print Stu;

    #print stulist

    insertSort(sum_count, stulist)

    #print stulist;

    display(stulist)

    def insertSort(a, stulist):

    for i in range(len(a)-1):

    #print a,i

    for j in range(i+1,len(a)):

    if a[i]

    展开全文
  • student_list = [88,99,100,55,14,55,33,3] lianghao=0 jige=0 youxiu=0 bujige=0 for i in student_list: if i>90: youxiu=youxiu+1 if i>80: lianghao=lianghao+1 if i>60: ... ...

    student_list = [88,99,100,55,14,55,33,3]
    lianghao=0
    jige=0
    youxiu=0
    bujige=0
    for i in student_list:
         if i>90:
              youxiu=youxiu+1
         if i>80:
              lianghao=lianghao+1
         if i>60:
              jige=jige+1
         if i<60:
              bujige=bujige+1
    print("优秀:%d"%youxiu)
    print("良好:%d"%lianghao)
    print("及格:%d"%jige)
    print("不及格:%d"%bujige)
     

    展开全文
  • #菜单def meun():menu_info = '''+----------------------+| 1)添加学生信息 || 2)显示所有学生的信息 || 3)删除学生信息 || 4)修改学生信息 || 5)按...
  • 题目描述 ...然后要求根据录入的学生成绩(各不相同),输出总分最高的学生姓名和各科目成绩。 输入格式: 输入分为4个部分: 先输入学生姓名,以空格分隔; 然后输入学生的数学成绩(各不相同的正整数)...
  • python 学生成绩管理系统 需求: 代码: import os filename = 'student.txt' def main(): while True: menu() choice = int(input("请选择:")) if choice in [0,1,2,3,4,5,6,7]: if choice==0: answer = ...
  • 300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下使用链表来实现class Node(object):def __init__(self, data, pointer):self.data = dataself.next = pointer# 创建单链表class ...
  • 本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下基本功能:输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。...
  • 题目内容: ...然后要求根据录入的学生成绩(各不相同),输出总分最高的学生姓名和各科目成绩。 输入格式: 输入分为4个部分: 先输入学生姓名,以空格分隔; 然后输入学生的数学成绩(各不相同的正整数...
  • python学生成绩管理系统创建

    千次阅读 2019-06-15 11:09:24
    python学生成绩管理系统创建 要求编写学生类,班级类,并在电脑运行生成表单,输入一个数字,得到对应的结果。 输出样式 代码如下 学生类 class Student: def __init__(self,sno,name,english,math): self.sno=...
  • 要求:能按班级、按课程完成对学生成绩的增删改查;能按班级、按课程统计学生的成绩,能求总分、平均分,课程的不及格人数等;能按班级、按课程对学生的成绩进行排序;能查询某名学生的成绩。嗯~ o( ̄▽ ̄)o,不管...
  • 在一个文本文件中存放着学生的各科成绩,现在需要计算各门课的成绩总分,并进行排序。这个应该怎么做呢?让我们试着编写这样的一个小程序。工具/原料python3.7方法/步骤1第一步,读入文件。由于这个文件并不大,我们...
  • 本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本功能: 输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。 打印...
  • # 开发人:龙技术 ... s1 = '学生信息管理系统' s2 = '功能菜单' print(s1.center(40, '=')) print(s2.center(42, '-')) print('1.录入学生信息'.rjust(24)) print('2.查找学生信息'.rjust(24)) pri
  • valu=valu.sort_values(by='绩点' , ascending=False).reset_index(drop=True) # 按绩点排序 valu.index=valu.index+1 # 索引从零开始 valu['绩点'] = valu['绩点'].apply(float) valu['相关分数'] = valu['相关分数...
  • 主要为大家详细介绍了python实现学生成绩测评系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下基本功能:输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。...
  • Python处理表格进行成绩排序 一、需求分析 我们首先有一个成绩表单,但是学生的成绩是按照学号进行排序的,现在,我们希望清晰明了的知道每一个学生的名次,并且需要将学生按照成绩的高低重新进行排序。 也就是说,...
  • 学生成绩管理系统可以实现学生基本信息的管理,要求以下功能: (1)输入并存储学生的信息:输入学生的学号、姓名和分数,把数据保存在建立的db文件里面. (2)打印学生信息:通过打印函数把学生所有信息打印在屏幕上. (3...
  • 好吧我忘记Python强大的函数库了…sort()函数直接可以...#成绩排序模块 import mainsystem import time def sort(): with open(mainsystem.filename,'r',encoding='utf-8') as rfile: student_list_old = rfile.rea
  • python统计学生成绩

    千次阅读 2020-04-07 11:49:29
    假设一个团队里有5名学员,成绩如下表...然后把这些人的总成绩排序,得出名次进行成绩输出。 姓名 语文 英语 数学 guanfei 66 65 30 guanyu 95 85 98 zhaoyun 93 92 9...
  • 这次的简易版成绩管理系统,主要有六大功能:增加学生信息删除学生信息修改学生信息查找学生信息显示学生信息按 ID 排序实现效果如下:保存与读取信息首先判断当前路径下,是否存在database.txt这个文件。...
  • 学生成绩管理系统功能:增加。删除。改变。检查。排序。这五个部分组成。都是由独立的功能。信息的访问字典形式表达。# student_ #插入学生信息def input_student():信息=[]尽管如此:n =输入(\u201C请输入学生姓名:\u...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,644
精华内容 2,657
关键字:

python学生成绩排序

python 订阅