私はPythonのブール式をテストしています。私は次のコードを実行すると:明らかにxがあるときPythonブール比較
<type 'int'>
False
True
がなぜある(xは整数である)、falseを返すと、(xはint型されていません)trueを返す:
x = 3
print type(x)
print (x is int)
print (x is not int)
を私は次のような結果を得ます整数型ですか?
私はPythonのブール式をテストしています。私は次のコードを実行すると:明らかにxがあるときPythonブール比較
<type 'int'>
False
True
がなぜある(xは整数である)、falseを返すと、(xはint型されていません)trueを返す:
x = 3
print type(x)
print (x is int)
print (x is not int)
を私は次のような結果を得ます整数型ですか?
から撮影:
>>> print (type(x) is int)
True
Pythonの 'is'演算子の理解を助けてくださった皆様、ありがとうございます。私は、識別子が特定のタイプであるかどうかをチェックするために 'is'を使用できると読んでいました。そのための正しい構文を教えてくれてありがとうございました。 –
これを行うための最善の方法は、あなたのケースでそうisinstance()
を使用している:
x = 3
print isinstance(x, int)
についてのpython is
is
とオブジェクトのアイデンティティのためのis not
テストは、オペレータ:xはxとyが同じオブジェクトである場合にのみ、yはtrue です。
あなたがやるべきis
使用したい場合はdocs
はあなたのインタプリタにこれらを入力してみてください:
type(x)
int
x is 3
x is not 3
type(x) is int
type(x) is not int
x is int
が偽であることを理由それは、番号3
とP ythonのintクラスは同じオブジェクトを表します。これが間違っていることは明らかです。
Pythonのis
キーワードは、それが何をしているのか正確にわからなければ、いくつかの予期しない方法で動作する可能性があります。それは、あなたの実際のプログラムの外でそれを実験することは非常に良いアイデアだと言われています。
'int'はクラスです。 'int'と入力すると' ' –
'is'が参照を比較します。 'isinstance(x、int)'が必要です。 –
Pythonは英語ではありません。 'is'演算子は非常に特殊な処理を行いますが、これはあなたが期待するものとは異なるようです。 – deceze