web-dev-qa-db-ja.com

Pythonで文字列に数値が含まれているかどうかを確認するにはどうすればよいですか?

可能性のある複製:
Pythonで文字列が数値であるかどうかを確認するにはどうすればよいですか
Python-文字列を浮動小数点または整数に解析

たとえば、文字列を確認したいのですが、整数に変換できない場合(int()を使用)、どのように検出できますか?

41
Figen Güngör

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

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

ドキュメントの引用:

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

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

46
Martijn Pieters

いつでもtry itできます:

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

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

32
mgilson