3

Python を試しているところですが、とても気に入っています。しかし、私はtry/exceptで立ち往生しています。

raw_input が整数であるかどうかをチェックするコードがありますが、それを機能させたいのですが、それを望んでいません:)

ここにコード、私はこれを持っています:

number_of_iterations = raw_input("What is your favorite number?")
try:
    int(number_of_iterations)
    is_number = True
except:
    is_number = False

while not is_number:
    print "Please put a number!"
    number_of_iterations = raw_input("What is your favorite number?")
    try:
        int(number_of_iterations)
        is_number = True
    except:
        is_number = False

私はここで自分自身を繰り返したくありません.

def check_input(input_number):
    try:
        int(input_number)
        return True
    except:
        return False

ただし、文字列を入力すると、文字列に int を使用できないというエラーが発生します。「try」キーワードが表示されないようです。smone は、なぜそれが起こるのか、そして今後どうすればそれを防ぐことができるのか説明できますか?

4

2 に答える 2

2

これを試してみてください。def

while True:
    try:
        number_of_iterations = int(raw_input("What is your favorite integer?"))
        break
    except ValueError:
        print "Please put an integer!"

編集:コメンターの提案に従って、ブロックbreakの一部を削除して削除しました(元は以下の参照として残ります)。また、上記のコードでは「3.14」が無効になるため、「数値」を「整数」に変更しました。tryelse

これが私の最初の提案でした。上記はより少ない行です (これをよりクリーンと呼ぶ人もいます) が、意図がより明確であるため、私は以下を好みます。

while True:
    try:
        number_of_iterations = int(raw_input("What is your favorite integer?"))
    except ValueError:
        print "Please put an integer!"
    else:
        break
于 2013-04-25T21:53:05.020 に答える