如何使用循环存储多组学生成绩以完成最高分查找功能
问题背景
作业原始要求:
(查找最高分)编写程序,提示用户输入学生人数和每名学生的成绩,最后输出最高成绩。假设输入存储在名为score.txt的文件中,程序从该文件获取输入。
因还未学习文件读写操作,实际要求改为直接通过交互输入处理。
现有代码
grade = 0 students = eval(input("enter number of students: ")) for i in range(1, students + 1): grade = eval(input("enter student score: "))
解决方案
你可以根据需求选择两种实现思路:
思路1:用列表存储所有学生成绩(适合需要后续处理全量成绩的场景)
初始化空列表存储每次输入的成绩,最后直接调用max()函数获取最高分即可:
# 初始化空列表存储所有成绩 score_list = [] # 用int()替代eval()避免恶意输入风险 students = int(input("enter number of students: ")) for i in range(students): grade = int(input("enter student score: ")) score_list.append(grade) # 输出最高分 print("最高成绩为:", max(score_list))
注:尽量不要用eval()处理用户输入,若用户输入恶意代码会被直接执行,仅需要数字输入的话用int()或者float()更安全
思路2:实时更新最高分(无需存储全量成绩,内存效率更高)
如果仅需要得到最高分,不需要后续处理其他成绩,可以只维护一个记录当前最高分的变量,每次输入后比对更新即可:
# 初始化最高分,若成绩允许低于0可改为float('-inf') max_score = 0 students = int(input("enter number of students: ")) for i in range(students): grade = int(input("enter student score: ")) # 当前成绩大于记录的最高分就更新 if grade > max_score: max_score = grade print("最高成绩为:", max_score)
内容的提问来源于stack exchange,提问作者optik404
相关产品推荐
相关产品推荐

