« [ 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 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/103108/44754000

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

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