python の isdigit() がややこしい件
スポンサーリンク
どうもこんにちは。racchai です。
python を使っていて、渡ってきた文字列が数値かどうか判定したいってことないですか?
私はあります。昨日ありました。
python には str.isdigit というズバリな組み込み関数が用意されているので、それ使っちゃえばいいんですよね。
で、使ったわけですが、どうも期待通りに動かないケースがあるわけです。
よくよく調べてみると、どうも -1 の場合に False が返っているように見える。
そんなばかな!と思い確認してみたら。
>>> '1'.isdigit() True >>> '0'.isdigit() True >>> '-1'.isdigit() False
False が返っとるがな!
どうやらマイナス値は False になるみたい。
python 世界で負数は数字ではないと?
なんでこんなことになってるんだ!
無駄に時間かかってしまったじゃないか。。
期待動作となる関数を手作りしてもいいけど、これ使えばいいのにって言われたとき悔しいので
負数も含めて正しく isdigit する方法、だれか教えてください。