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时,我得到以下结果。
输入int:4不作为int。输入int:5不作为int。输入int:2不是 中间体
我无法得到正确的答案,即4,5,2。我的计划出了什么问题?
答案 0 :(得分:1)
正如语法高亮显示的那样,Val
与val
不同。这是导致NameError
的拼写错误。更大的问题是你的程序正在隐藏NameError,因为你告诉它将任何异常(无论是什么原因)转换为单个消息。
你可能打算抓住ValueError
,int
会引发意外输入。