卡坦精962 2024-05-30 19:58 采纳率: 50%
浏览 88

输入n个学生的python成绩,按照成绩升序排列,输出排列后的成绩,求平均值输出。

img


输入n个学生的python成绩,按照成绩升序排列,输出排列后的成绩,求平均值输出。
输入输出示例:
输入:
5
“0001
88
'0002
73
“0004
87
“0005'
78
'0006
88
输出:
成绩从高到低为:("“0001: 88, ""0006": 88, 0004": 87, "*0005":78,
""0002":73)
平均分=82.80

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-30 19:58
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据你提供的任务描述和输入输出示例,下面是一个简单的Python程序,它可以完成你所要求的任务:

    def main():
        # 读取学生数量
        n = int(input("请输入学生数量:"))
        scores = []
        
        # 读取每个学生的成绩
        for _ in range(n):
            student_id = input()
            score = int(input())
            scores.append((student_id, score))
        
        # 按照成绩升序排列
        scores.sort(key=lambda x: x[1], reverse=True)
        
        # 输出排列后的成绩
        print("成绩从高到低为:")
        for student_id, score in scores:
            print(f"{student_id}: {score}")
        
        # 计算平均分
        average_score = sum(score for _, score in scores) / n
        print(f"平均分={average_score:.2f}")
    
    if __name__ == "__main__":
        main()
    

    这个程序首先读取学生的数量,然后读取每个学生的成绩和学号,并将它们存储在一个列表中。之后,程序使用sort()函数和lambda表达式来根据成绩对列表进行降序排序(因为你要求的是升序排列,但示例中是降序,这里我假设是示例错误)。然后,程序遍历排序后的列表并打印每个学生的成绩和学号。最后,程序计算所有成绩的平均值并打印出来。

    请注意,这个程序假设输入格式是正确的,并且每个成绩后面都紧跟着一个换行符。在实际应用中,你可能需要添加错误处理来确保程序的健壮性。

    至于参考资料,Python官方文档是一个很好的资源,你可以在以下地址找到有关列表、元组、排序和输入输出的详细信息:

    如果你需要更多帮助或者有其他问题,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月30日