异常输出不正确

2024-07-03 06:25:38 发布

您现在位置:Python中文网/ 问答频道 /正文

def readVal(valType, requestMsg, errorMsg):
    while True:
        val = input(requestMsg)
        try:
            val = valType(Val)
            return Val
        except:
            print(errorMsg)

print (readVal(int, 'Enter int:', 'Not as int.'))

当我输入4,5,2时,我得到了如下结果

Enter int:4 Not as int. Enter int:5 Not as int. Enter int:2 Not as int.

我不能得到正确的答案,即4,5,2。我的程序出了什么问题


Tags: trueinputdefasnotvalintprint
1条回答
网友
1楼 · 发布于 2024-07-03 06:25:38

正如语法突出显示所示,Valval不同。这是一个导致NameError的打字错误。更大的问题是,您的程序对您隐藏了NameError,因为您告诉它将任何异常(无论是什么原因导致的)转换为单个消息

您可能打算捕获ValueError,而int将抛出意外输入

相关问题 更多 >