python3小技巧之:如何判斷字串是數字
阿新 • • 發佈:2018-11-11
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!