1. 程式人生 > >python3小技巧之:如何判斷字串是數字

python3小技巧之:如何判斷字串是數字

     python中的字串有專門判斷是否為數字的函式isdigit(),當字元中的元素全部是整數,而且至少有一個字元時返回True,否則返回False。

>>> '1235'.isdigit()
True
>>> '1'.isdigit()
True
>>> '1a'.isdigit()
False
>>>

 但是它只能判斷包含整數的字元,如果是小數的話,比如‘12.4’就判斷不出來;如果是負數的話也不能判斷,遍歷去判斷的話也會很麻煩。

>>> '3.3'.isdigit()
False
>>> '3.0'.isdigit()
False
>>> '3.33.4'.isdigit()
False
>>> '-1'.isdigit()
False

解決方法:用float()將字串強制做轉換,用try捕獲異常,沒有丟擲異常的話說明是數字型別

>>> def fun_isdigit(aString):
...     try:
...        return float(aString)
...     except ValueError as e:
...         print('input is not a number!')
...
>>> fun_isdigit('3.1415')
3.1415
>>> fun_isdigit('3.3')#判斷小數
3.3
>>> fun_isdigit('30')#判斷整數
30.0
>>> fun_isdigit('-30.9')#判斷負數
-30.9
>>> fun_isdigit('ab')#非數字拋異常
input is not a number!