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

如何在Python跑步统计任务中正确终止循环?连续零输入修复

修正无列表实现的跑步统计Python代码

原代码存在两个关键问题:

  • 触发连续3天0的终止条件后,仍会执行后续的平均距离计算与输出,不符合需求
  • 非连续的0会被累计计数,连续懒天数的逻辑错误

修正后的代码:

def main():
    days = int(input("Enter the number of days: "))
    day = 1
    counter = 0
    total = 0
    lazy_break = False  # 标记是否因连续懒天终止

    while day <= days:
        length = float(input(f"Enter day {day} running length: "))
        day += 1
        total += length

        if length == 0:
            counter += 1
            if counter >= 3:
                print("\nYou had too many consecutive lazy days!")
                lazy_break = True
                break
        else:
            counter = 0  # 非0时重置连续计数

    # 只有没触发懒天终止时,才计算平均并输出
    if not lazy_break:
        average = round(total / days, 2)
        print()
        if average < 3:
            print(f"Your running mean of {average} km was too low!")
        else:
            print(f"You were persistent runner! With a mean of {average} km.")

if __name__ == "__main__":
    main()

修改说明:

  • 新增lazy_break变量,用来记录是否因为连续3天0终止循环,避免后续代码执行
  • 当输入非0距离时,重置counter为0,确保连续0的计数准确
  • 循环结束后先判断lazy_break状态,只有正常完成所有天数输入时,才计算并输出平均距离相关内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 01:39:56