zoukankan      html  css  js  c++  java
  • 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判断字符串是否为字母或者数字(浮点数)

  • 相关阅读:
    emacs 集成astyle
    git reflog
    rpm 打包的时候 不进行strip
    gmock
    如何对正在运行的进程,进行heap profile
    linux性能压测工具
    默认宏定义
    gdb fabs错误输出
    基于Clang的缓存型C++编译器Zapcc
    grep 多行 正则匹配
  • 原文地址:https://www.cnblogs.com/chenxinming-top/p/9409316.html
Copyright © 2011-2022 走看看