8

入力のエラーをチェックするためにPython 3にこのコードがありますが、入力が整数であることを確認し、エラーメッセージを出力しない場合は判断する必要があります。

whileループのコードを理解するのを手伝ってくれる人はいますか。ありがとう

price = 110;

ttt = 1;

while price < 0 or price > 100:

    price = input('Please enter your marks for Maths:');
    ttt =ttt +1;
    if ttt >= 2:
        print( 'This is an invalid entry, Please enter a number between 0 and 100')
4

4 に答える 4

9

関数を使用int()して整数に変換します。これは、変換を実行できない場合に ValueError を発生させます。

try:
    price = int(price)
except ValueError as e:
    print 'invalid entry:', e
于 2012-12-27T22:51:25.660 に答える
3

価格が整数であるかどうかと0〜100の間であるかどうかの両方をキャッチし、これらの条件が満たされた場合にループを中断する、このようなものが必要になる可能性があります。

while True:
    price = raw_input('Please enter your marks for Maths:')
    try:
        price = int(price)
        if price < 0 or price > 100:
            raise ValueError
        break
    except ValueError:
        print "Please enter a whole number from 0 to 100"

print "The mark entered was", price

または、可能な値の数が管理しやすいため、次のようなこともできます。

valid_marks = [str(n) for n in range(101)]
price = None
while price is None:
    price = raw_input('Please enter your marks for Maths:')
    if not price in valid_marks:
       price = None
       print "Please enter a whole number from 0 to 100"
于 2012-12-27T23:22:25.350 に答える
2

まず、raw_inputの代わりに使用しinputます。

また、ttt入力の前にチェックを入れて、エラーが正しく表示されるようにします。

price = 110;
ttt = 1;
while price < 0 or price > 100:
    if ttt >= 2:
        print 'This is an invalid entry, Please enter a number between 0 and 100';
    price = raw_input('Please enter your marks for Maths:');
    ttt = ttt +1;
于 2012-12-27T22:50:54.787 に答える