算法1
1、分小數和整數:如果小數點個數為1,則可能是小數。如小數點個數為0,則可能是整數。小數點個數非0也非1,那么就不是數字。
2、如果是小數,再分正數和負數的情況:如果首位為負號,則可能是負小數。如果首位不為負號,則可能是正小數。
1)如果首位為負號,則去掉負號。
2)如果首位不為負號;或者是首位為負號,去掉首位負號之后。則判斷是否為是否為“.”,如果是,那么就不是數字,如果不是,就去掉"."
3)再判斷剩下字符是否都在"0123456789"內,如果不都在則不是數字,否則就是數字
3、如果是整數,也同樣分正數和負數的情況。如果首位為負號,則可能是負整數,如果首位不為負號,則可能是正整數。
1)如果首位誒負號,則去掉負號。
2)如果首位不為負號;或者是首位為負號,去掉首位負號之后。判斷剩下字符是否都在"0123456789"內,如果不都在則不是數字,否則就是數字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#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"內,如果不都在則不是數字,否則就是數字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#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" )) |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/anne32184/p/13258653.html