2017-08-10 14 views
0
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.')) 

権利ではなく、I入力4、5、2例外出力は

がint入力したとき、私は次のような結果を得た:intとして4ないし。 intを入力してください:5 intではありません。 intを入力してください: intではありません。

私は4,5,2の正解を得ることができません。自分のプログラムに何が問題なのですか?

答えて

1

構文の強調表示に示すように、Valvalと同じではありません。それはNameErrorを引き起こすタイプミスです。より大きな問題は、プログラムがNameErrorを隠しているということです。なぜなら、何が原因であろうと、例外を単一のメッセージに変換するように指示したからです。

おそらくValueErrorをキャッチすることを意図していましたが、intは予期しない入力を投げます。

関連する問題