45

重複の可能性:
Python で文字列が数値かどうかを確認するにはどうすればよいですか?
Python - 文字列を解析して Float または Int にする

たとえば、文字列をチェックしたいのですが、(with でint()) 整数に変換できない場合、どうすればそれを検出できますか?

4

2 に答える 2

49

.isdigit()メソッドを使用します。

>>> '123'.isdigit()
True
>>> '1a23'.isdigit()
False

ドキュメントの引用:

文字列内のすべての文字が数字で、少なくとも 1 文字ある場合は true を返し、そうでない場合は false を返します。

文字列または Python 3 文字列の場合unicodeは、より正確な定義を使用し、代わりにunicode.isdecimal()/を使用する必要があります。str.isdecimal()すべての Unicode 数字が 10 進数として解釈できるわけではありません。たとえば、 U+00B2 SUPERSCRIPT 2は数字ですが、10 進数ではありません。

于 2012-09-17T19:43:29.177 に答える
33

あなたはいつでもtryそれをすることができます:

try:
   a = int(yourstring)
except ValueError:
   print "can't convert"

isdigitを使用して文字列を浮動小数点数に変換できるかどうかを知りたい場合は、この方法が優れていることに注意してください。float

于 2012-09-17T19:42:49.380 に答える