用户从键盘上输入10位学生的学号、姓名和分数,这里采用字典。程序最终输出相同姓名的平均分。如果字典中不存在相同姓名的情况,则程序给出相应提示。(用Python解决)
代码如下:{如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮}。
dic = {}
for n in range(10):
a,b,c = input("输入学号 姓名 分数:").strip().split(' ')
c = float(c)
dic.setdefault(b,[]).append(c)
print(dic)
for k,v in dic.items():
avg = sum(v)/len(v)
print(k,"的平均分:",avg)
学号、姓名和分数都不能作为唯一,而字典的key必须是唯一的,如果不唯一,会覆盖原有的数值,你这个功能有点问题
你可以参考,自己进行修改,可以用时间戳生成key,用做唯一,然后学号、姓名和分数作为字典的value,不过这个判断就非常复杂。
a = int(input("请输入学生人数:"))
d = {}
for i in range(a):
num = input("成绩为:")
name = input("姓名为:")
d[name] = int(num)
r = sum(d.values()) / len(d.values())
print('平均分:', r)
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
# 1、由用户输入学生学号与姓名,数据用字典存储,最终输出学生信息(按学号由小到大显示)
# 创建字典
students = {}
# 用户输入
student = input("请输入学号:")
ID = input("请输入你的姓名:")
if not(student is None):
students[student] = ID
# 判断是否继续输入
judge = input("是否继续输入(请输入yes继续,输入其他则结束):")
while judge == "yes" or judge == "Yes":
student = input("请输入学号:")
ID = input("请输入你的姓名:")
# 判断学号是否重复,防止更改已输入的信息
while student in students:
if student in students:
print('学号重复请重新输入你的信息')
student = input("请输入学号:")
ID = input("请输入你的姓名:")
else:
break
# 加入字典
students[student] = ID
judge = input("是否继续输入(请输入yes或者no):")
# 排序
list1 = list(students.items())
list1.sort(key=lambda x: x[0], reverse=False)
print(dict(list1))