|
|
|
@ -0,0 +1,102 @@
|
|
|
|
|
#######################################
|
|
|
|
|
# 引号的输入全为英文格式
|
|
|
|
|
#1. 成绩的排名输出
|
|
|
|
|
grades=[["张三", 80, 90], ["李四", 75, 95], ["王五", 88, 92], ["赵六", 85, 87]] # 输入二维成绩表格(姓名+各科成绩)
|
|
|
|
|
for ls in grades:
|
|
|
|
|
x=sum(ls[1:])
|
|
|
|
|
ls.append(x) #将总分添加到倒数第二位
|
|
|
|
|
avg=x/(len(ls[1:])-1)
|
|
|
|
|
ls.append(avg) #将平均分添加到末尾
|
|
|
|
|
grades.sort(reverse=True,key=lambda x:x[-1]) #按平均分从大到小排序
|
|
|
|
|
for i in grades:
|
|
|
|
|
print(f'姓名{i[0]},总分{i[-2]},平均分{i[-1]:.2f}') #输出所有同学的总分和平均分
|
|
|
|
|
###########################################
|
|
|
|
|
#2. 成绩的修改
|
|
|
|
|
name_list = ['张三', '李四', '王五']
|
|
|
|
|
values_input = [
|
|
|
|
|
{'语文': 100, '数学': 90},
|
|
|
|
|
{'语文': 80, '数学': 95},
|
|
|
|
|
{'语文': 85, '数学': 88}
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
# 直接创建嵌套字典
|
|
|
|
|
dc = dict(zip(name_list, values_input))
|
|
|
|
|
|
|
|
|
|
# 修改成绩
|
|
|
|
|
name = input("请输入要修改的学生姓名:").strip()
|
|
|
|
|
if name in dc:
|
|
|
|
|
try:
|
|
|
|
|
subject, new_score = input("请输入科目和分数(格式:科目:分数):").split(':')
|
|
|
|
|
subject = subject.strip()
|
|
|
|
|
new_score = int(new_score.strip())
|
|
|
|
|
|
|
|
|
|
# 修改成绩(如果科目不存在会自动创建)
|
|
|
|
|
dc[name][subject] = new_score
|
|
|
|
|
except ValueError:
|
|
|
|
|
print("错误:输入格式不正确,请使用'科目:分数'格式")
|
|
|
|
|
else:
|
|
|
|
|
print("错误:该学生不存在")
|
|
|
|
|
|
|
|
|
|
# 打印修改后的成绩单
|
|
|
|
|
for name, scores in dc.items():
|
|
|
|
|
print(f"{name}: {scores}")
|
|
|
|
|
################################################
|
|
|
|
|
#3. 成绩的删除
|
|
|
|
|
name_list = ['张三', '李四', '王五']
|
|
|
|
|
values_input = [
|
|
|
|
|
{'语文': 100, '数学': 90},
|
|
|
|
|
{'语文': 80, '数学': 95},
|
|
|
|
|
{'语文': 85, '数学': 88}
|
|
|
|
|
]
|
|
|
|
|
dc= dict(zip(name_list , values_input))
|
|
|
|
|
name=input('请输入需要删除成绩的学生的姓名:').strip()
|
|
|
|
|
if name in dc:
|
|
|
|
|
try:
|
|
|
|
|
del_subject = input("请输入去除的科目和分数(格式:科目:):")
|
|
|
|
|
del_subject = del_subject.strip()
|
|
|
|
|
del_score = 0 # 将删除的成绩化为0
|
|
|
|
|
|
|
|
|
|
dc[name][del_subject] = del_score
|
|
|
|
|
except ValueError:
|
|
|
|
|
print("错误:输入格式不正确,请使用'科目:'格式")
|
|
|
|
|
else:
|
|
|
|
|
print("错误:该学生不存在")
|
|
|
|
|
# 打印修改后的成绩单
|
|
|
|
|
for name, scores in dc.items():
|
|
|
|
|
print(f"{name}: {scores}")
|
|
|
|
|
##################################################
|
|
|
|
|
#4. 成绩的增加
|
|
|
|
|
name_list = ['张三', '李四', '王五']
|
|
|
|
|
values_input = [
|
|
|
|
|
{'语文': 100, '数学': 90},
|
|
|
|
|
{'语文': 80, '数学': 95},
|
|
|
|
|
{'语文': 85, '数学': 88}
|
|
|
|
|
]
|
|
|
|
|
dc= dict(zip(name_list , values_input))
|
|
|
|
|
name=input('请输入需要增添成绩的学生的姓名:').strip()
|
|
|
|
|
if name in dc:
|
|
|
|
|
try:
|
|
|
|
|
new_subject, new_score= input("请输入需要增添的科目和分数(格式:科目:分数):").split(':')
|
|
|
|
|
new_subject = new_subject.strip()
|
|
|
|
|
new_score = int(new_score.strip())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dc[name][new_subject] = new_score
|
|
|
|
|
except ValueError:
|
|
|
|
|
print("错误:输入格式不正确,请使用'科目:分数'格式")
|
|
|
|
|
else:
|
|
|
|
|
print("错误:该学生不存在")
|
|
|
|
|
# 打印修改后的成绩单
|
|
|
|
|
for name, scores in dc.items():
|
|
|
|
|
print(f"{name}: {scores}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
########################################
|
|
|
|
|
#######################################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|