您好,登錄后才能下訂單哦!
小編給大家分享一下python判斷字符串是不是數字算法的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
算法1
1、分小數和整數:如果小數點個數為1,則可能是小數。如小數點個數為0,則可能是整數。小數點個數非0也非1,那么就不是數字。
2、如果是小數,再分正數和負數的情況:如果首位為負號,則可能是負小數。如果首位不為負號,則可能是正小數。
1)如果首位為負號,則去掉負號。
2)如果首位不為負號;或者是首位為負號,去掉首位負號之后。則判斷是否為是否為“.”,如果是,那么就不是數字,如果不是,就去掉"."
3)再判斷剩下字符是否都在"0123456789"內,如果不都在則不是數字,否則就是數字
3、如果是整數,也同樣分正數和負數的情況。如果首位為負號,則可能是負整數,如果首位不為負號,則可能是正整數。
1)如果首位誒負號,則去掉負號。
2)如果首位不為負號;或者是首位為負號,去掉首位負號之后。判斷剩下字符是否都在"0123456789"內,如果不都在則不是數字,否則就是數字
#encoding=utf-8 def is_number(s): if s.count(".")==1: #小數的判斷 if s[0]=="-": s=s[1:] if s[0]==".": return False s=s.replace(".","") for i in s: if i not in "0123456789": return False else: #這個else與for對應的 return True elif s.count(".")==0: #整數的判斷 if s[0]=="-": s=s[1:] for i in s: if i not in "0123456789": return False else: return True else: return False print(is_number("1334345345")) print(is_number("1.12344565")) print(is_number("-14344343")) print(is_number("-1.123456")) print("**********************") print(is_number("abc")) print(is_number("1.32.2")) print(is_number(".2344")) print(is_number("1234a")) print(is_number("--1.1")) print(is_number("--1abc"))
算法2
1、判斷首位是否是負號或者數字,如果不是,則不是數字。如果是,則可能是數字。
2、判斷"."和"-"的個數是否都小于等于1,如果不是,則不是數字,如果是,則可能是數字。
3、去掉"."和"-" 。
4、判斷剩下的字符是否都在"0123456789"內,如果不都在則不是數字,否則就是數字
#encoding=utf-8 def is_number(s): if s[0]=="-" or s[0] in "0123456789": if s.count(".")<=1 and s.count("-")<=1: s=s.replace("-","").replace(".","") #print (s) for i in s: if i not in "0123456789": return False else: #這個else與for對應 return True else: return False else: return False print(is_number("1334345345")) print(is_number("1.12344565")) print(is_number("-14344343")) print(is_number("-1.123456")) print("**********************") print(is_number("abc")) print(is_number("1.32.2")) print(is_number(".2344")) print(is_number("1234a")) print(is_number("--1.1")) print(is_number("--1abc"))
看完了這篇文章,相信你對python判斷字符串是不是數字算法的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。