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

Python中While循环为何遗漏最后输入且列表首项为0?

解决7天降雨量统计程序的输入问题

你的代码核心问题是输入与列表追加的顺序颠倒,导致两个异常:

  • 列表首项是初始赋值的0,而非第一天的降雨量
  • 最后一次输入的第7天数据未被加入列表,循环就提前结束

修正后的while循环版本

调整逻辑顺序,先输入当日降雨量,再追加到列表:

rain = []
counter = 1

while counter < 8:
    # 先获取当日降雨量
    rainfall = float(input("Enter the rainfall of day {0}: ".format(counter)))
    # 再加入列表
    rain.append(rainfall)
    counter += 1

# 计算并输出统计结果
total_rainfall = sum(rain)
average_rainfall = total_rainfall / len(rain)
print(f"每日降雨量: {rain}")
print(f"总降雨量: {total_rainfall}")
print(f"平均降雨量: {average_rainfall:.2f}")

更简洁的for循环版本

因为天数固定为7天,用range遍历更直观,无需手动维护计数器:

rain = []
for day in range(1, 8):
    rainfall = float(input(f"Enter the rainfall of day {day}: "))
    rain.append(rainfall)

total_rainfall = sum(rain)
average_rainfall = total_rainfall / 7
print(f"每日降雨量: {rain}")
print(f"总降雨量: {total_rainfall}")
print(f"平均降雨量: {average_rainfall:.2f}")

运行修正后的代码,输入1到7的话,输出会是[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0],同时正确计算总降雨量和平均降雨量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:45:30