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

Python降雨量统计程序如何实现输入负数时输出错误提示

实现方案

你需要对每一次的用户输入增加合法性校验,核心逻辑是每次获取输入值后先判断是否为负数,若为负则输出错误提示,要求用户重新输入,直到拿到合法的非负降雨量数值。另外原本重复写10次输入的代码冗余度较高,可以用循环简化,修改后的完整代码如下:

Days = []

# 循环处理10天的降雨量输入
for day_num in range(1, 11):
    while True:
        rain_input = int(input(f"Enter day {day_num} rainfall: "))
        # 负数校验逻辑
        if rain_input < 0:
            print("错误:降雨量不能为负数,请重新输入")
        else:
            Days.append(rain_input)
            break

def lowest():
    print('The minimum rainfall is', min(Days))
lowest()

def highest():
    print('The most rainfall is', max(Days))
highest()

def total():
    print('The total rainfall is', sum(Days))
total()

def average():
    print('The average rainfall is', float(sum(Days))/len(Days))
average()

改动说明

  • 新增while True无限循环包裹输入逻辑,只有输入合法的非负数值才会跳出当前循环,进入下一天的输入流程
  • 增加负数判断分支,输入值小于0时直接输出错误提示,不会存入统计列表
  • 用for循环替代了原本10行重复的输入变量定义,代码更简洁易维护

如果需要兼容处理非数字输入的异常场景(比如用户输入字母、符号导致整数转换报错),可以把输入部分调整为如下逻辑:

for day_num in range(1, 11):
    while True:
        try:
            rain_input = int(input(f"Enter day {day_num} rainfall: "))
            if rain_input < 0:
                print("错误:降雨量不能为负数,请重新输入")
            else:
                Days.append(rain_input)
                break
        except ValueError:
            print("错误:请输入有效的整数降雨量")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:27:02