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

Pythonの「is not」演算子とは?同一性の判定方法を実例付きで解説

is not 演算子の基本

Pythonにおける isis not は、同一性演算子(identity operators)と呼ばれる演算子です。これらは、2つのオブジェクトがメモリ上で同じ実体を指しているかどうかを判定するために使用されます。

オブジェクトIDと同一性の仕組み

コンピュータのメモリ上に存在する各オブジェクトには、Pythonインタプリタによって一意の識別番号(id)が割り当てられています。この識別番号は、組み込み関数 id() を使うことで確認できます。

同一性演算子は、2つのオブジェクトの id() の値が一致するかどうかをチェックします。具体的には、is not 演算子は以下のように動作します。

  • 2つのオブジェクトの id() の値が異なる場合 → True を返す
  • 2つのオブジェクトの id() の値が同じ場合 → False を返す

実際の動作例

次のコードで、is not 演算子の挙動を確認してみましょう。

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

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

最初の例では、変数 ba を代入しているため、両者は同じオブジェクト(同じid)を参照しています。そのため a is not bFalse になります。

一方、2つ目の例では ab はそれぞれ異なる整数オブジェクトを参照しており、idも異なるため、a is not bTrue を返します。

注意点:「!=」との違い

is not は値の不等価を判定する != とは意味が異なります。is notオブジェクトの同一性(同じメモリ上のオブジェクトかどうか)を判定するのに対し、!=値の等価性を比較します。一般的には、値の比較には ==!= を使用し、is notNone チェックなど同一性の判定が必要な場面で使うことが推奨されています。

  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