【问题标题】:Handling errors using a extra function使用额外功能处理错误
【发布时间】:2021-02-27 17:38:06
【问题描述】:

是否可以制作错误处理功能,这样我就不必在输入的地方进行错误处理?

例如:

def error_handler(a,b,c):
    while True:
        try:
            a, b, c
        except ValueError:
            print("wrong")

def inputs():
   a = input("Write something")
   b = input("Write something")
   c = input("Write something")

如何让“输入”函数理解我一直在执行错误处理函数而不重复该过程?

【问题讨论】:

    标签: python python-3.x list input error-handling


    【解决方案1】:

    您可以创建一个输入函数来测试输入的有效性。

    在以下示例中,测试一个 int(但您可以将其更改为您需要的类型。

    def input_with_error_handler(txt):
        while True:
            try:
                raw_value = input(txt)
                return int(raw_value)
            except ValueError:
                print(f"{raw_value} must be an int")
        
    
    a = input_with_error_handler("enter an int: ")
    b = input_with_error_handler("enter an int: ")
    c = input_with_error_handler("enter an int: ")
    

    【讨论】:

    • 只需return int(input(txt)) 不需要value,为什么要用f 字符串作为文字字符串
    • rioV8 如何将其导入第二个函数?
    • @rioV8 你能举例说明你的意思吗,因为我认为我的老师说过类似的话
    • 对不起@rioV8,我发布了不完整的代码,感谢您指出。 raw_value收集input;如果引发错误,则在消息中使用它(fstring)
    • 如果用户在问题enter an int: 中输入了一些内容并且程序以Error: not an int entered 进行响应,则它不适用于返回的3 个字段或某些文件内容,因此无需显示他刚刚输入的内容
    猜你喜欢
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 2019-09-12
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    相关资源
    最近更新 更多