Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのis演算子とは何をするもの?同一性判定の仕組みをわかりやすく解説

Pythonには、isis not という2つの「同一性演算子(identity operators)」が用意されています。Pythonインタプリタは、メモリ上に存在するすべてのオブジェクトに対して、一意の識別番号(id)を自動的に割り当てます。同一性演算子は、この識別番号を使って、2つのオブジェクトが同じ実体であるかどうかを判定します。

is 演算子は、2つのオブジェクトの id() の値が一致していれば True を返し、異なっていれば False を返します。逆に is not は、その真逆の結果を返します。

実際の動作を確認してみよう

>>> a = 10
>>> b = a
>>> id(a), id(b)
(490067904, 490067904)
>>> a is b
True

>>> a = 10
>>> b = 20
>>> id(a), id(b)
(490067904, 490068064)
>>> a is b
False

同じオブジェクトを参照している場合

b = a と代入すると、bはaと同じオブジェクトを参照します。そのため両者のidは一致し、a is b の結果は True になります。

別々のオブジェクトである場合

aとbにそれぞれ別の値を代入したケースでは、2つのオブジェクトのidが異なるため、a is b の結果は False となります。

== 演算子との違いに注意しよう

is が判定するのは「同一性(同じオブジェクトを指しているか)」であり、「値が等しいかどうか」ではありません。値の比較には == 演算子を使用します。また、None との比較では x is None と書くのがPythonの慣用的な作法とされているため、覚えておくと便利です。

  1. Pythonの「print >>」構文とは?ファイルへの出力方法を解説

    「print >>」は、Python 2における標準のprintステートメントを拡張するための構文です。この構文を使うと、デフォルトの出力先であるsys.stdout(標準出力)ではなく、任意のファイルライクなオブジェクトに対して直接出力できるようになります。つまり、画面に表示する代わりに、ファイルやその他の出力ストリームへ直接書き込むことが可能になります。基本的な使い方例えば、「my_file」という名前のファイルを開いた場合、次のように書き込むことができます。>>> my_file = open(my_file, w) >>> print &

  2. Pythonの「%」演算子とは?文字列フォーマットの基本と使い方を解説

    Pythonの「%」演算子の役割 Pythonにおける「%(パーセント)」は、文字列フォーマット演算子(補間演算子)として機能します。「format % values」という形式で記述すると、フォーマット文字列内の変換指定子が、values側の要素によって置き換えられます。この仕組みは、C言語のsprintf()関数とよく似ています。 基本的な使い方:文字列の埋め込み 最もシンプルな例は、文字列の中に変数の値を埋め込むケースです。 >>> lang = Python >>> print %s is awesome! % lang Python is awe