1. 程式人生 > 其它 >中判斷字串是否包含某個字元_Python判斷輸入的字串是否是數字

中判斷字串是否包含某個字元_Python判斷輸入的字串是否是數字

技術標籤:中判斷字串是否包含某個字元

在寫物理實驗影象處理的指令碼時,遇到了一個判斷輸入的字串是否為數字的方法

最開始我的思路是這個

test = input()
while test.isdigit():
    # do something

用的是系統自帶的String.isdigit()的方法,該方法用於判定輸入的字串是否為純數。如果是純數,則返回True,否則返回False。

但是這樣有一個問題,浮點數中有dot這個符號,所以一旦使用者輸入浮點數,返回值就是False,達不到我要的目標。後來想用最原始的C++中判定ASCII碼的方法解決該問題,覺得過於複雜。於是有了下面這個思路,用異常來捕捉。

def isscalar(str):
    try:
        float(str)
    except ValueError:
        return False
    else:
        return True

由於在使用float()(也包括其他數型的轉換int、long)轉換時,若轉換物件不是數字,系統會自動報錯

ValueError: could not convert string to float: 'string'

於是利用這一點來實現判定使用者輸入是否是數字,也算是對異常捕捉的一次學習了。