网络编程
位置:首页>> 网络编程>> Python编程>> Python判断字符串是否为字母或者数字(浮点数)的多种方法

Python判断字符串是否为字母或者数字(浮点数)的多种方法

作者:风v月  发布时间:2023-04-12 07:55:47 

标签:python,判断,字符串

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/howt...

使用isdigit()


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()


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

总结

以上所述是小编给大家介绍的Python判断字符串是否为字母或者数字(浮点数)的多种方法网站的支持!

来源:https://segmentfault.com/a/1190000015871403

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com