You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ABCDEF/学生排名的输出.py

102 lines
3.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#######################################
# 引号的输入全为英文格式
#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}")
########################################
#######################################