Schuco443 2023-04-18 11:33 采纳率: 0%
浏览 25

python问题回答

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

  • 写回答

2条回答

  • 创意程序员 2023-04-18 13:00
    关注
    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)
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月18日