« [ ubuntu ] ネットワーク設定が消される | トップページ | [ C# ] generics »

2009/04/22

[ python ] こりゃひどい・・・

設定ファイルに記述されている数字が 0~99 であるか判定するコードで↓みたいなのを見て唖然。


if (len( fragment ) < 0) and (9 < len( fragment )):
	raise Exception
else
	if (fragment[0] < '0') or ('9' < fragment[0]):
		raise Exception
	elif ((len( fragment ) == 2) and ((fragment[1] < '0') or ('9' < fragment[1]))):
		raise Exception

これ書いたやつは何考えているんだろうか?
正規表現か、int() つかって数値変換すれば一瞬で終わるんじゃないの?
"000012" みたいなのを指定されたときなんか考えると、正規表現はめんどくさいので int() 使ってみる。


setting = int( fragment )
if (setting < 0) or (99 < setting):
	raise Exception

Simple is better than complex.

2009-04-22 追記
一応正規表現版。抜けがあるかも・・・


if re.match( r"^0*\d{1, 2}$", fragment ) == None:
	raise Exception

|

« [ ubuntu ] ネットワーク設定が消される | トップページ | [ C# ] generics »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [ python ] こりゃひどい・・・:

« [ ubuntu ] ネットワーク設定が消される | トップページ | [ C# ] generics »