Python で、入力された値が整数か小数か判定する関数を書いたのでメモ。
入力は float 型しか受け付けません。
>>> def isinteger(x): ... if isinstance(x, float): ... return if x == int(x) ... else: ... raise TypeError, "Input float"
入力された値と、入力を int() で整数にした値が等しいか比較します。
== は値の比較なので、float と int を比較してもうまくいくようですが、is だと常に False になります。
参考
整数か小数かの判定|脱プログラミング入門
Python で変数の型 (クラス) を調べる – types モジュール | すぐに忘れる脳みそのためのメモ
5.9 比較 (comparison)