要判斷一個字符串是否是小數:
1先判斷小數點的個數,即如果是小數,則必須有且僅有一個'.'號
2再分別判斷'.'號的左右兩邊是否是數字:
判斷左邊時,如果負數,則左邊包含'-'號:必須以'-'號開頭(校驗 3-3.444 這樣的字符串);在'-'號右邊必須至少有一位數字校驗(-.333 這樣的字符串)
判斷右邊小數位則僅需是數字即可
代碼實現如下:
def is_float(s): s =str(s) if s.count('.')==1: new_s = s.split('.') left_num = new_s[0] right_num = new_s[-1] if right_num.isdigit(): if left_num.isdigit(): return True elif left_num.count('-')==1 and left_num.startswith('-'): tmp_num = left_num.split('-')[-1] if tmp_num.isdigit(): return True return False s_in = input("請輸入您要判斷的字符串:\n") print(is_float(s_in))