Python判断字符串是否为字母或者数字(浮点数)

Posted 小和尚我不念经

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python判断字符串是否为字母或者数字(浮点数)相关的知识,希望对你有一定的参考价值。

str为字符串s为字符串

str.isalnum() 所有字符都是数字或者字母

str.isalpha() 所有字符都是字母

str.isdigit() 所有字符都是数字

str.isspace() 所有字符都是空白字符、 、 、

检查字符串是数字/浮点数方法

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

  原文:Python判断字符串是否为字母或者数字(浮点数)

 

以上是关于Python判断字符串是否为字母或者数字(浮点数)的主要内容,如果未能解决你的问题,请参考以下文章

Python 判断是否可以转化为浮点数及其他数字类型

js中如何判断两个浮点数是不是相等

iOS开发如何判断字符串是否是整数,浮点数,纯数字

iOS开发如何判断字符串是否是整数,浮点数,纯数字

python 判断一个数为?

Python判断字符串是否为字母或者数字