2016-06-12 6 views
-5

このコードをPythonコンソールで実行すると、メッセージが正しく表示されません。Python型変数間違ったメッセージ

(type(a) != int) and (int == False) 

int == Falseは常に偽になるだろう:私の場合は5

a = raw_input("type a number here: ") 

if type(a) != int == False: 

    print ("Input verified!") 

elif type(a) != float == False: 

    print ("Input verified!") 

else: 

    print ("Wrong!") 
+1

あなたは '場合でisinstanceをチェックしようとしています参照してください。 (int、float)) '? **それは常に 'str' **ですから。 – jonrsharpe

答えて

4

type(a) != int == Falseチェーン比較ある、として評価入力します。

booleanテストで== Falseまたは== Trueを使用しないでください。直接テストするか、notを使用してください。また、特定の種類のテストにisinstance()を使用します。

if isinstance(a, int): 
    # ... 

しかし、タイプstrのオブジェクトを返しますraw_input()、常にを。タイプintまたはfloatのオブジェクトは生成されません。あなたはfloat()を使用して明示的に変換し、有効な整数または浮動小数点数でない入力を処理するために例外処理を使用する必要があります。

try: 
    result = float(a) 
    print 'Input verified' 
except ValueError: 
    print 'Sorry, I need a number' 

また(Asking the user for input until they give a valid response

関連する問題