python问题回答

从键盘输入学生的人数n,并循环输入每名学生的信息:学号(sid)、姓名(name)、成绩(score)(每名学生的信息用字典student表示),将全部学生存入学生列表(stuList)中,并按学生的成绩从高分到低分进行排序并打印出全部学生信息,并打印成绩最高和成绩最低的学生信息,并将最高分和最低分的学生从学生列表中删除,最后再对学生列表进行拷贝,对拷贝的列表(stuListCopy)进行排序输出(按照成绩由低到高的顺序)。

sn = int(input("请输入学生人数:"))
if sn <= 0:
    exit(0)

# 循环输入每名学生的信息
stuList = []
for i in range(sn):
    sid = input("请输入学号:")
    name = input("请输入姓名:")
    score = int(input("请输入成绩:"))
    student = {'sid': sid, 'name': name, 'score': score}
    stuList.append(student)

# 按照成绩从高到低对学生列表进行排序
stuList.sort(key=lambda x: x['score'], reverse=True)

print("全部学生信息:")
for student in stuList:
    print(student)

highest = stuList[0]
lowest = stuList[-1]
print("成绩最高的学生信息:", highest)
print("成绩最低的学生信息:", lowest)

# 从学生列表中删除最高分和最低分的学生
stuList.remove(highest)
if lowest in stuList:
    stuList.remove(lowest)

# 对学生列表进行拷贝,并按照成绩从低到高排序并输出
if len(stuList) == 0:
    print("剩余学生信息列表为空")
else:
    stuListCopy = stuList.copy()
    stuListCopy.sort(key=lambda x: x['score'])
    print("按照成绩由低到高排序后的学生信息:")
    for student in stuListCopy:
        print(student)