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