Python判断字符串是否为字母或者数字(浮点数)
发布时间:2020-12-17 17:00:24 所属栏目:Python 来源:网络整理
导读:str为字符串s为字符串 str.isalnum() 所有字符都是数字或者字母 str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 str.isspace() 所有字符都是空白字符、t、n、r 检查字符串是数字/浮点数方法 float部分 ?float('Nan')nan?float('Nan')nan
str为字符串s为字符串 str.isalnum() 所有字符都是数字或者字母 str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 str.isspace() 所有字符都是空白字符、t、n、r 检查字符串是数字/浮点数方法 float部分 >>?float('Nan') nan >>?float('Nan') nan >>?float('nan') nan >>?float('INF') inf >>?float('inf') inf >>?float('-INF') inf >>?float('-inf') inf 第一种:最简单 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() def?is_number(s): ????try: ????????complex(s)?#?for?int,?long,?float?and?complex ????except?ValueError: ????????return?False ????return?True 综合1 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-还是无法完全识别 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() #?str必须是uniconde模式 >>>?str?=?u"345" >>>?str.isnumeric()True http://www.tutorialspoint.com/python/string_isnumeric.htm http://docs.python.org/2/howto/unicode.html 使用isdigit() https://docs.python.org/2/library/stdtypes.html#str.isdigit >>>?str?=?"11" >>>?print?str.isdigit() True >>>?str?=?"3.14" >>>?print?str.isdigit() False >>>?str?=?"aaa" >>>?print?str.isdigit() False 使用int() def?is_int(str): ????try: ????????int(str) ????????return?True ????except?ValueError: ????????return?False 第三种:使用正则(最安全方法) 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |