You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在多分数输入的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:42:52