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'

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM