You need to enable JavaScript to run this app. Python入门课程作业:实现循环数值累加、连续相同输入时终止程序
优惠活动
大模型
产品
解决方案
定价
更多

Python入门课程作业:实现循环数值累加、连续相同输入时终止程序

Python作业功能实现与错误修正指南

原代码现存逻辑问题

  • 循环嵌套冗余:外层while a < b与内层for n in range(b)实现了完全重复的遍历逻辑,属于无效嵌套
  • 累加计算错误:原代码用for i in range(points)重复叠加单月学分,会导致单月学分被重复计算N次(N等于当月输入的学分数值),结果完全偏离预期
  • 连续输入判断缺失:没有设置专门变量存储上一次的输入值,无法识别“连续两次输入0”的终止触发条件
  • 结构缩进错误:主程序入口判断if __name__ == "__main__":被写在main函数内部,会导致程序无法正常启动执行

核心功能实现方法

1. 循环录入值的正确累加逻辑

累加求和不需要嵌套循环,只需要在函数最开始初始化总和变量为0,每一次获取到用户输入的学分数值后,直接将该值加到总和变量上即可。核心语句为:
total_sum += points
注意:不要通过嵌套循环重复叠加单条录入的数值,否则会造成计算结果翻倍的错误

2. 连续两次输入0的判断与程序终止

要实现连续输入判断,需要额外定义一个状态变量,用来留存上一次的用户输入值,完整判断流程为:

  • 提前初始化last_points = None,用于存储上一次的输入记录
  • 每录入一次新的学分数值,先判断:当前输入值为0 且 上一次输入值也为0
  • 满足判断条件时,直接打印要求的终止提示文本,通过函数返回(或exit())终止程序运行,不再执行后续录入与计算逻辑
  • 不满足终止条件时,将当前输入值赋值给last_points,进入下一次录入循环

修正后完整可运行代码

def main():
    # 初始化累加总和、上次输入记录变量
    total_sum = 0
    last_points = None

    # 获取统计周期的月份数
    input_months = input("Enter the number of months: ")
    month_total = int(input_months)

    # 逐月录入学分
    for month_idx in range(1, month_total + 1):
        current_points = int(input(f"Enter the number of credits in month {month_idx}:"))
        
        # 触发连续两次0学分的终止逻辑
        if current_points == 0 and last_points == 0:
            print("You did have too many study breaks!")
            return
        
        # 累加当月学分至总和
        total_sum += current_points
        # 更新上次输入的记录值
        last_points = current_points

    # 计算保留1位小数的月均学分
    avg_points = round(total_sum / month_total, 1)

    # 根据规则输出判定结果
    if avg_points >= 5:
        print(f"You are a full time student and your monthly credit point average is {avg_points}.")
    else:
        print(f"Your monthly credit point average {avg_points} does not classify you as a full time student.")

if __name__ == "__main__":
    main()

功能匹配校验

  • 所有输入提示文本与作业要求完全一致,月份计数从1开始连续编号
  • 连续两次输入0时,立刻打印指定提示并直接退出,无多余输出
  • 平均学分严格保留1位小数,全日制判定阈值为5,输出文本完全匹配作业要求

内容的提问来源于stack exchange,提问作者Hnk Mrn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 07:24:02