2011-12-26 8 views
1

私は現時点でPythonを学んでおり、問題が発生しました。 このコードを守ってください。Python 2.7.2 if/or unexpected behaviour

while 1: 
    print "How many lines do you want to add to this file?" 

    number_of_lines = raw_input(">").strip() 

    if not(number_of_lines.isdigit()) or number_of_lines > 10: 
     print "Please try a number between 1 and 10 inclusive." 
     continue 

コードは番号をユーザに要求し、チェックそれが妥当です。しかし、何らかの理由で、ユーザーが10未満の有効な数値を入力したとしても、コードは常にエラーを表示します。

おそらくどこかで小さなエラーが発生しましたが、 Python初心者!

希望すると助かります!前もって感謝します。

+0

FYI一般的には、「try ... except」を使用してください:スローガンはEAFPではなくLBYLです。 – katrielalex

+0

@katrielalexありがとう、私はこれを将来考慮するが、私はまだそれにそれほどではない。 – Kieran

答えて

5

raw_inputから返された場合、number_of_lines変数は文字列です。あなたは10と比較する前に整数に変換する必要があります。

not(number_of_lines.isdigit()) or int(number_of_lines) > 10 
+0

ありがとう、このソリューションは動作し、まさに私が後にしたものです! – Kieran

3

私は、彼らが何か他のものを入れた場合にエラーをキャッチし、最初の文字列を整数に変換しようと思います。これもisdigitコールを破棄します。同様に:

while 1: 
    print "How many lines do you want to add to this file?" 

    try: 
     number_of_lines = int(raw_input(">").strip()) 
    except ValueError: 
     print "Please input a valid number." 
     continue 

    if number_of_lines > 10: 
     print "Please try a number between 1 and 10 inclusive." 
     continue 
+0

あなたの答えをありがとう。私はこれを次回に検討しますが、私はまだ初心者であり、まだそれほど得られていないので、try/exceptを使用しないようにしたいと思います!あなたの答えをアップアップしました。 – Kieran

関連する問題