【问题标题】:How to use raise ValueError?如何使用raise ValueError?
【发布时间】:2022-07-28 22:04:43
【问题描述】:

我想看ValueError4 次,但它只显示一次,为什么程序要搜索其他双数?

def isitDoubleorSingle(value):
    if(value%2!=0):
        raise ValueError(\"Number isn\'t double\")
    print(value)    

list=[10,22,79,43,11,80]

for x in list:
    isitDoubleorSingle(x)
  • 一旦你raise 出错,程序就会停止运行。你想要warning 吗?另外,你不应该重新定义内置的list
  • 另外,可以简化为if(value % 2)

标签: python valueerror raise


【解决方案1】:

这将解决您的问题。您必须在 except 块中捕获您的错误,否则您的脚本将在您的第一个 raise ValueError() 处停止运行

编辑:正如@Nin17 所说,您不应该重新定义内置列表,因此重命名 my_list 中的列表(或您想要的任何名称)应该会更好。

def isitDoubleorSingle(value):
    try:
        if(value%2!=0):
            raise ValueError()
    except ValueError:
            print(f"Number {value} isn't double")

my_list=[10,22,79,43,11,80]

for x in my_list:
    isitDoubleorSingle(x)

【讨论】:

    【解决方案2】:

    当你引发异常时,程序已经自动关闭,因此不能多次显示 ValueError

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-06
      • 2019-03-21
      • 2021-10-26
      • 2021-10-27
      • 2019-07-07
      • 2023-03-19
      • 1970-01-01
      • 2021-04-04
      相关资源
      最近更新 更多