python文字列が純粋な数字かどうかを判断する方法

1967 ワード

この例では、pythonが文字列が純粋な数字かどうかを判断する方法について説明します.皆さんの参考にしてください.具体的には以下の通りです.
判定のコードは以下の通りで、異常判定では前のプラスとマイナスの区別がつかず、正規表現は自分の必要に応じて比較的柔軟に書くことができ、isdigit法で純数字かどうかを判断することができ、テストコードは以下の通りである.

   #!/usr/bin/python 
  
# -*- coding: utf-8 -*-
a = "1"
b = "1.2"
c = "a"
#
def is_num_by_except(num):
    try:
        int(num)
        return True
    except ValueError:
#        print "%s ValueError" % num
        return False
print " "
print "a", is_num_by_except(a)   
print "b", is_num_by_except(b)
print "c", is_num_by_except(c)
print " isdigit()"
print "a", a.isdigit()
print "b", b.isdigit()
print "c", c.isdigit()
print " "
import re
print "a", re.match(r"d+$", a) and True or False
print "b", re.match(r"d+$", b) and True or False
print "c", re.match(r"d+$", c) and True or False

出力結果は次のとおりです.

          
  
a True
b False
c False
isdigit()
a True
b False
c False

a True
b False
c False
--EOF--

文字列に数字のみが含まれていると判断
1つの方法はa.isdigit()である.しかし、この方法は正負の番号を含む数値文字列には無効なので、より正確には:

   try: 
  
    x = int(aPossibleInt)
    … do something with x …
except ValueError:
    … do something else …

これはもっと正確で、適用性も広いです.しかし、正負の記号がないと確信している場合は、文字列のisdigit()メソッドを使用すると便利です.
正規表現も使用できます.

   re.match(r'[+-]?d+$', '-1234′) 
 

数値が大きい場合は、intタイプよりも変換速度が速い場合があります.
ここで述べたことが皆さんのPythonプログラム設計に役立つことを願っています.