さて、質問です。 a = 1.0 a is 1.0 上記の処理で、a is 1.0 の結果は True となるでしょうか、それとも False となるでしょうか? True と答えたあなた、不正解です。反省してください。 False と答えたあなた、同じく不正解です。猛省してください。 正解は 「わからない」 です。 Pythonインタープリタを起動して、対話的に実行してみましょう。 >>> a = 1.0 >>> a is 1.0 False False ですね。a に代入した float オブジェクトと、a is 1.0 で比較している float オブジェクトは、同じ値ですが異なるオブジェクトです。 でも、ちょっと書き換えて、同じ処理を関数の中で実行するとどうでしょう? >>> def test(): ... a = 1.0 ... return a is 1.0 ... >>> t