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

如何实现循环请求输入整数并累加?现有代码累加逻辑异常求排查

累计求和代码问题修正指南

现有代码问题原因

  • 累计变量未在循环外初始化:每次循环都重新给total_assignment_grade赋值为当前输入成绩,直接覆盖了之前的累计结果
  • 累加逻辑错误:complete = total_assignment_grade + assignment_grade实际仅将当前输入的成绩计算了两次,没有叠加历史输入的所有数值

固定输入次数版本(匹配你原有for循环逻辑)

你需要提前在循环外部初始化累计总和变量,每次循环将新输入的成绩叠加到该变量上即可,修正后代码如下:

# 提前定义作业总数量,可根据实际需求修改赋值
assignment_quantity = 5
# 循环外初始化累计总和为0,避免循环中被重置
total_assignment_grade = 0

for i in range(assignment_quantity):
    assignment_grade = int(input("What was your grade on assignment#" + str(i) + ":"))
    print(f"本次输入成绩:{assignment_grade}")
    # 累加当前成绩到总和变量
    total_assignment_grade += assignment_grade
    # 输出当前累计结果
    print(f"当前累计总成绩:{total_assignment_grade}")

print(f"所有作业最终累计成绩:{total_assignment_grade}")

不限次数持续输入版本

如果需要不限制输入次数,直到用户主动终止输入,可以改用while循环实现:

total_assignment_grade = 0
i = 1

while True:
    input_str = input(f"What was your grade on assignment#{i}(输入-1结束输入):")
    assignment_grade = int(input_str)
    # 输入-1时终止循环
    if assignment_grade == -1:
        break
    print(f"本次输入成绩:{assignment_grade}")
    total_assignment_grade += assignment_grade
    print(f"当前累计总成绩:{total_assignment_grade}")
    i += 1

print(f"所有输入成绩最终累计总和:{total_assignment_grade}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:54:01