2

ユーザーがメニュー選択で整数の代わりに文字列を入力し、ユーザーがデータとして入力した金額を入力した場合、エラー メッセージを追加する必要があります。このコードを試しましたが、うまくいきません。

import sys
try:
    newamount=int(input('Enter the new amount:'))
except ValueError:
    print ("error")

私は何を間違っていますか?

4

3 に答える 3

1

TypeErrorint()へのパラメーターが間違った型であった場合に発生します。

Python3 を使用していると仮定すると、 の戻り値input()は常に型になりますstr

ValueErrorが問題ない場合に発生しますが、コンテンツを に変換できませんint

何度も尋ねるには、whileループを使用する必要があります

while True:
    try:
        newamount=int(input('Enter the new amount:'))
        break
    except ValueError:
        print ("error")

エラーのカウントを保持したい場合は、ループを使用itertools.countしますfor

from itertools import count
for c in count():
    try:
        newamount=int(input('Enter the new amount:'))
        break
    except ValueError:
        print ("error", c)
于 2013-10-24T02:40:32.377 に答える
1

入力を手動で評価する必要がある場合は、 raw_input を使用する方がよいと思います。こんなふうになります...

s = raw_input()
try:
    choice = int(s)
except ValueError:
print ('Wrong Input!')  
于 2013-10-24T02:45:55.713 に答える