【问题标题】:How can I exclude negative numbers?如何排除负数?
【发布时间】:2019-04-16 22:07:58
【问题描述】:

我不确定如何防止负数影响最终计算。

我不知道还能尝试什么。

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)

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

【问题讨论】:

标签: python list loops


【解决方案1】:

您可以使用 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)

【讨论】:

    【解决方案2】:

    如果我理解正确,您可以使用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)
    

    【讨论】:

      【解决方案3】:

      您快到了,您可以使用的一个技巧是将rainfall_answer 设置为负(无效)值,然后您可以重复input 读取,直到您在rainfall_answer 中获得正值:

      for month in months:
          rainfall_answer = -1
          while rainfall_answer < 0:
              rainfall_answer = int(input("What was the rainfall in {}? ".format(month)))
          rainfall.append(rainfall_answer)
      

      【讨论】:

        【解决方案4】:

        你需要循环输入。

        for month in months:
            while True:
                rainfall_answer = int(input("What was the rainfall in {}? ".format(month)))
                if rainfall_answer >= 0:
                    break  # exit while loop because you got valid input
                else:
                    print('Input must be positive')
            rainfall.append(rainfall_answer)     
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-23
          • 2022-01-14
          • 2014-02-28
          • 1970-01-01
          • 2019-10-21
          • 1970-01-01
          相关资源
          最近更新 更多