Python 如何排除负数?

Python 如何排除负数?,python,list,loops,Python,List,Loops,我不知道如何防止负数影响最终计算 我不知道还能尝试什么 for month in months: rainfall_answer = int(input("What was the rainfall in {}? ".format(month))) if rainfall_answer < 0: print("Input must be positive.") rainfall_answer = int(input("What was the

我不知道如何防止负数影响最终计算

我不知道还能尝试什么

for month in months:
    rainfall_answer = int(input("What was the rainfall in {}? ".format(month)))
    if rainfall_answer < 0:
        print("Input must be positive.")
        rainfall_answer = int(input("What was the rainfall in {}? ".format(month)))
    elif rainfall_answer > 0:
        rainfall.append(rainfall_answer)
以月份为单位的月份:
Rainsion_answer=int(输入({}中的降雨量是多少?.format(month)))
如果降雨量小于0:
打印(“输入必须为正。”)
Rainsion_answer=int(输入({}中的降雨量是多少?.format(month)))
elif降雨量\u答案>0:
雨量.附加(雨量\答案)

我希望无效输入不会包含在最终结果中。

如果我理解正确,您可以使用
while
循环反复提示用户,直到输入为非负:

for month in months:
    rainfall_answer = int(input("What was the rainfall in {}? ".format(month)))
    while rainfall_answer < 0:
        print("Input must be positive.")
        rainfall_answer = int(input("What was the rainfall in {}? ".format(month)))

    rainfall.append(rainfall_answer)
以月份为单位的月份:
Rainsion_answer=int(输入({}中的降雨量是多少?.format(month)))
当降雨量小于0时:
打印(“输入必须为正。”)
Rainsion_answer=int(输入({}中的降雨量是多少?.format(month)))
雨量.附加(雨量\答案)

您需要循环输入

以月份为单位的月份:
尽管如此:
Rainsion_answer=int(输入({}中的降雨量是多少?.format(month)))
如果降雨量\u答案>=0:
中断#退出while循环,因为您得到了有效的输入
其他:
打印('输入必须为正')
雨量.附加(雨量\答案)

您就快到了,您可以使用的一个技巧是将
降雨\u答案
设置为负值(无效),然后您可以重复
输入
读取,直到
降雨\u答案
中的值为正值:

以月份为单位的月份:
降雨量-答案=-1
当降雨量小于0时:
Rainsion_answer=int(输入({}中的降雨量是多少?.format(month)))
雨量.附加(雨量\答案)

您可以使用while循环来循环输入,还需要使用try-except块来处理和引发异常,在这种情况下不包括负数

for month in months:
  while True:
    try:
        rainfall_answer = int(input("What was the rainfall in {}? ".format(month)))
        if rainfall_answer < 0:
            raise ValueError
        break
    except ValueError:
        print ("Input must be positive")
rainfall.append(rainfall_answer)
以月份为单位的月份:
尽管如此:
尝试:
Rainsion_answer=int(输入({}中的降雨量是多少?.format(month)))
如果降雨量小于0:
升值误差
打破
除值错误外:
打印(“输入必须为正”)
雨量.附加(雨量\答案)