[ 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
| 固定リンク | コメント (0) | トラックバック (0)