如何在多分数输入的Python程序中实现最高分获取功能?
修正并添加最高分功能的代码
先修复原代码的缩进错误、未初始化变量问题,同时新增最高分跟踪功能:
number_of_attempts = 0 total_marks = 0 # 初始化总分,原代码缺失会导致运行报错 max_marks = 0 # 初始化最高分变量 repeat_until_false = True while repeat_until_false: # 简化逻辑判断,无需写==True ask_for_marks = input("Enter marks: ") try: marks = float(ask_for_marks) except ValueError: print("Invalid input! Please enter a number.") continue # 处理非数字输入,避免程序崩溃 if marks > 100 or marks < 0: print("Invalid number! Please enter a valid number between 0 and 100.") continue # 更新总分、次数、平均分 total_marks += marks number_of_attempts += 1 average = total_marks / number_of_attempts # 更新最高分 if marks > max_marks: max_marks = marks # 判定等级与描述 if marks < 30: print("Grade: W") print("Description: Low marks") elif marks < 50: print("Grade: S") print("Description: Have to work") elif marks < 80: print("Grade: B") print("Description: Good") else: print("Grade: A") print("Description: Well done") ask_to_quit = input("May I continue? Y/N ") if ask_to_quit.strip().upper() == "N": # 兼容大小写和空格输入 break # 输出最终统计结果 if number_of_attempts > 0: # 避免无有效输入时的计算错误 print(f"Total Marks: {total_marks}") print(f"Average Marks: {average:.2f}") print(f"Highest Marks: {max_marks}") else: print("No valid marks entered.") print("Thank you")
关键修改说明:
- 新增
max_marks变量初始化,用于跟踪输入的最高分 - 每次输入有效分数后,通过
if marks > max_marks: max_marks = marks更新最高分 - 修复原代码的缩进错误,保证代码结构合法
- 添加非数字输入的异常处理,避免程序崩溃
- 优化退出判断逻辑,支持大小写和空格输入
- 增加无有效输入时的容错处理,防止平均分计算报错
内容的提问来源于stack exchange,提问作者kavindu priyanishan
相关产品推荐
相关产品推荐

