メモ: Pythonで文字列が数値かどうかを調べる関数


20年ぶりくらいにPythonでプログラムを書くことになりまして…

最初に書いたのは、就職したての頃。
Perlが流行っているところにPythonとかいうスクリプト言語を見つけて面白がってプログラムを書いてみたんだっけ。
たしか、IRCサーバにつないでユーザーの相手をする奴。

それはどうでもいい(^^;

ファイルから読み込んだデータを別形式に変形するスクリプトを書き始めたのはいいが、数値がダブルクォートでくくられててよろしくないので、数値ならくくらないという処理をしたくて、isdigit()、isnumerical()とか触ってみたけど浮動小数点な数値は数値と判定してくれないのね。

いろいろ検索してみて、そういうことなんだと判断した。

で、見つけてきた解決策がこれ。
float()で型変換できたら数値。失敗したらそれは数値じゃない。
という乱暴だけど、コードはシンプル(^^;

def str_isfloat(str):
	try:
		float(str)
		return True

	except ValueError:
		return False

str = u"1.2345"
print str_isfloat(str)

Perlで困らないんだけど、これからやることはPythonの方がいろいろ捗りそうなのでPythonで書くことも多くなりそうってことでメモとして置いておく。
(たまにはブログも書かないとね^^;)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする