Python语言设计

已知存储学生成绩信息的字典结构如下: stu = {"name":"杨一","english":85,"python":90,"math":92}。编写要求: (1)请使用上述结构输入n个学生的name,及 english,python,math三门课程的成绩并存放于列表中。 (2)n为由用户输入大于0的整数,name为字符串类型,english、python、math位数值型类型 (3)计算每位同学的平均成绩,同时在字典列表中添加平均成绩(保留小数1位)的信息,输出所有学生的成绩信息 (4)按平均分从高到低输出学生姓名和平均分

n = int(input("输入学生数量:"))
lst = []
for i in range(n):
    name = input(f"第{i+1}个学生的name:")
    english = float(input(f"第{i+1}个学生的english课程的成绩:"))
    python = float(input(f"第{i+1}个学生的python课程的成绩:"))
    math = float(input(f"第{i+1}个学生的math课程的成绩:"))
    stu = {"name":name,"english":english,"python":python,"math":math}
    stu["avg"] = round((english+python+math)/3,1)
    lst.append(stu)
print(*lst,sep='\n')

lst.sort(key=lambda x: x['avg'], reverse=True)
for x in lst:
    print('姓名:',x['name'],'平均分:',x['avg'])

 


students = []
n = int(input("请输入一共有多少学生:"))
for i in range(n):
    name = input("请输入姓名:")
    english = float(input("请输入英语成绩:"))
    python = float(input("请输入python成绩:"))
    math = float(input("请输入数学成绩:"))
    student = {
        "name":name,
        "english":english,
        "python":python,
        "math":math
    }
    students.append(student)
for student in students:
    student['avg'] = (student['english']+student['python']+student['math'])/3

for item in students:
    print(item)

students = sorted(students,key = lambda x:(x['avg']),reverse=True)
for item in students:
    print(item)

如有帮助请采纳~

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632