如何将Python成绩处理代码中的两个while循环合并为单个while循环
单while循环实现成绩录入与最高分计算修改方案
核心思路是将「录入成绩」和「比对最高分」两个逻辑合并到同一次循环中,每录入一个成绩就同步完成最高分更新,无需先存完所有成绩再单独遍历计算。
修改后的完整代码如下:
number_of_grades = int(input("请问共有多少名学生?: ")) grades = [] # 如果不需要保留所有成绩后续使用,可以删除此行 highest_grade = float('-inf') current_count = 0 while current_count < number_of_grades: current_grade = int(input("请输入学生成绩: ")) # 同步存储成绩(不需要可删除) grades.append(current_grade) # 同步更新最高分 if current_grade > highest_grade: highest_grade = current_grade current_count += 1 print(f"最高分为: {highest_grade}")
改动说明
- 移除了原本两个独立的循环函数,把两个步骤的逻辑合并到同一个循环内执行,循环次数和原来的录入循环次数完全一致,没有额外性能开销
- 初始化最高分设为负无穷
float('-inf'),兼容所有合法的正分数输入,不需要单独处理第一个成绩的赋值逻辑 - 如果不需要留存所有学生成绩,可删除所有和
grades列表相关的代码,进一步节省内存空间 - 如果需要处理学生数为0的边界场景,可在输出前加判断,比如当
number_of_grades为0时提示无有效成绩即可
内容的提问来源于stack exchange,提问作者tomas
相关产品推荐
相关产品推荐

