2014-01-30 51 views
-1

以下哪一項是檢查字符串是否可以表示爲數字的最佳方法?檢查字符串是否爲數字或不在python

一個)

def is_number(s): 
    try: 
    float(s) 
    return True 
    except ValueError: 
    return False 

B)

Import re 
check_regexp = re.compile(「^\d*\.?\d*$」) 

C)

def isNumber(token): 
    for char in token: 
    if not char in string.digits: return false 
    return True 

d)

import re 
check_replace = lambda x: x.replace(‘.’,’’,1).isdigit() 
+2

這應有助於: http://stackoverflow.com/questions/354038/how-do-i-check-if-a-string-is-a-number-in-python – oznu

回答

0

你可以此PY通過代碼,它會發現字符串是數字或浮點值。

def typeofvalue(text): 
    try: 
     int(text) 
     return 'int' 
    except ValueError: 
     pass 

    try: 
     float(text) 
     return 'float' 
    except ValueError: 
     pass 

    return 'str' 

typeofvalue("1773171") 
2

所有四個版本都做不同的事情。由於第一個版本是唯一正確處理底片的版本,因此我幾乎在所有情況下都會更喜歡它。即使其他版本調整爲返回與第一個版本相同的值,爲了清晰起見,我寧願使用第一個版本。但是,如果輸入格式需要比float接受更嚴格,可能不允許輸入如'123e+4',那麼正確編寫的正則表達式可能是最簡單的解決方案。

相關問題