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
相关产品推荐
相关产品推荐

