str为字符串s为字符串
str.isalpha() 所有字符都是字母
str.isdigit() 所有字符都是数字
str.isspace() 所有字符都是空白字符、t、n、r
检查字符串是数字/浮点数方法
float部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
>> float ( 'Nan' )
nan
>> float ( 'Nan' )
nan
>> float ( 'nan' )
nan
>> float ( 'INF' )
inf
>> float ( 'inf' )
inf
>> float ( '-INF' )
inf
>> float ( '-inf' )
inf
|
第一种:最简单
1
2
3
4
5
6
7
8
9
10
11
12
|
def is_number( str ):
try :
# 因为使用float有一个例外是'NaN'
if str = = 'NaN' :
return False
float ( str )
return True
except ValueError:
return False
float 例外示例
>>> float ( 'NaN' )
nan
|
使用complex()
1
2
3
4
5
6
|
def is_number(s):
try :
complex (s) # for int, long, float and complex
except ValueError:
return False
return True
|
综合1
1
2
3
4
5
6
7
8
9
|
def is_number(s):
try :
float (s) # for int, long and float
except ValueError:
try :
complex (s) # for complex
except ValueError:
return False
return True
|
综合2-还是无法完全识别
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
def is_number(n):
is_number = True
try :
num = float (n)
# 检查 "nan"
is_number = num = = num # 或者使用 `math.isnan(num)`
except ValueError:
is_number = False
return is_number
>>> is_number( 'Nan' )
False
>>> is_number( 'nan' )
False
>>> is_number( '123' )
True
>>> is_number( '-123' )
True
>>> is_number( '-1.12' )
True
>>> is_number( 'abc' )
False
>>> is_number( 'inf' )
True
|
第二种:只能判断是整数
使用isnumeric()
1
2
3
4
5
|
# str必须是uniconde模式
>>> str = u "345"
>>> str .isnumeric() True
http: / / www.tutorialspoint.com / python / string_isnumeric.htm
http: / / docs.python.org / 2 / howt...
|
使用isdigit()
1
2
3
4
5
6
7
8
9
10
|
https: / / docs.python.org / 2 / lib...
>>> str = "11"
>>> print str .isdigit()
True
>>> str = "3.14"
>>> print str .isdigit()
False
>>> str = "aaa"
>>> print str .isdigit()
False
|
使用int()
1
2
3
4
5
6
|
def is_int( str ):
try :
int ( str )
return True
except ValueError:
return False
|
第三种:使用正则(最安全方法)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import re
def is_number(num):
pattern = re. compile (r '^[-+]?[-0-9]\d*\.\d*|[-+]?\.?[0-9]\d*$' )
result = pattern.match(num)
if result:
return True
else :
return False
>>>: is_number( '1' )
True
>>>: is_number( '111' )
True
>>>: is_number( '11.1' )
True
>>>: is_number( '-11.1' )
True
>>>: is_number( 'inf' )
False
>>>: is_number( '-inf' )
False
|
总结
以上所述是小编给大家介绍的Python判断字符串是否为字母或者数字(浮点数)的多种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://segmentfault.com/a/1190000015871403