Python学生成绩录入程序如何给成绩添加对应科目名称?
实现方案
你可以将原存储的成绩列表调整为「科目-成绩映射字典」,适配不同学生选修科目数量不一致的需求,修改后的代码如下:
def GetStudentDataFromTeacher (): D ={} while True: StudentId = input ("输入学生ID:") # 调整输入提示,明确输入格式 StudentMarks = input ("输入学生各科成绩,格式为「科目名:成绩」,多门科目用逗号分隔(例:语文:92,数学:87):") MoreStudents = input ('如果没有更多学生需要录入,请输入"no":') if StudentId in D: print (StudentId, "该学生ID已存在") else: # 二次拆分输入内容,生成科目-成绩字典 score_dict = {} for item in StudentMarks.split(","): subject, mark = item.split(":") score_dict[subject.strip()] = mark.strip() D[StudentId] = score_dict if MoreStudents.lower() == "no": return D
使用说明
- 录入时按照提示的格式输入即可自动关联科目与对应成绩
- 后续读取学生数据时可直接遍历获取科目和成绩,示例如下:
# 调用函数获取数据 data = GetStudentDataFromTeacher() # 遍历输出所有学生的科目成绩 for stu_id, score_info in data.items(): print(f"学生ID:{stu_id}") for subject, score in score_info.items(): print(f"- {subject}:{score}")
如果希望分开录入科目和成绩,也可以调整输入逻辑,先录入当前学生的选修科目数量,再逐个录入科目名称和对应成绩,逻辑和上述方案一致,只是拆分了输入步骤。
内容的提问来源于stack exchange,提问作者Or Zemer Tov
相关产品推荐
相关产品推荐

