如何在学生信息为用户输入(未知)时追踪分数并检测是否等于10?
学生分数追踪程序解决方案
完整可用代码
# 收集学生及分数 student_scores = {} enter_name = True while enter_name: name = input("Name: ") if name == "end": enter_name = False continue # 输入对应分数,同时处理无效输入 try: score = int(input(f"输入{name}的分数: ")) student_scores[name] = score # 检测满分 if score == 10: print(f"{name}拿了满分10分!") except ValueError: print("请输入数字分数!") # 输出所有学生分数 print("\n学生分数汇总:") for name, score in student_scores.items(): print(f"{name}: {score}") if score == 10: print(f" ✅ {name}获得满分!")
核心改进点
- 用**字典
student_scores**代替单纯的名字列表,直接把学生名字和分数绑定,完美解决"追踪不同学生分数"的核心需求 - 输入名字时同步录入分数,一步完成信息收集,不用拆分两次循环操作
- 增加输入验证逻辑,避免用户输入非整数导致程序报错崩溃
- 实时检测分数是否为10,输入阶段就给出提示,最后汇总时也会专门标注满分学生
原代码的问题修正
原代码仅存储了学生名字列表,无法建立名字与分数的对应关系。而字典的键值对结构正好适配这种"一对一"的信息存储场景,是这类问题的标准解决方案。
内容的提问来源于stack exchange,提问作者Vic
相关产品推荐
相关产品推荐

