Python 类型判断 变量存在判断 None与空字符串 is和==区别 nan inf判断
2017-03-12 21:06
786 查看
一、类型变量
type#判断是否为整数 type(varObj) is types.IntType StringType FloatType DictType TupleType ListType BooleanType
isinstance
isinstance(aaa,str)
type与isinstance区别
class A: pass class B(A): pass isinstance(A(), A) # returns True type(A()) == A # returns True isinstance(B(), A) # returns True type(B()) == A # returns False
二、变量存在
异常捕获try: print self.fileReadOpen except Exception: pass else: del self.fileReadOpen
def isset(v): try : type (eval(v)) except : return 0 else : return 1 isset('varname') //变量只能在try里调用才会捕获异常,所以采用字符串参数。
命名空间
'varname' in locals().keys() 'varname' in dir()
dir()不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。
三、None与空字符串
有句话说的Python中万物皆为对象。None也是对象。这就好理解None与空字符串NULL区别:type(None) <class 'NoneType'>
type('') <class ''str'>
>>> None == 0 //(int) False >>> None == ' ' //(str) False >>> None == False //(boolean) False
四、is和==区别
is判断的是a对象是否就是b对象,是通过id来判断的。==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。
>>> d = {"a":1} >>> dd = d.copy() >>> d is dd False >>> d == dd True
五、nan inf
记忆:对于is判断,符合is的对象比较定义:对象is对象本身,对象不is新建对象。对于==判断,除了nan,符合==的值比较的定义。对于nan在用==值比较时,可以认为,nan对象的值不==该nan对象的值,nan对象的值不==新建nan对象的值。>>> inf = float("inf") >>> ninf = float("-inf") >>> nan = float("nan") >>> inf is inf True >>> ninf is ninf True >>> nan is nan True >>> inf == inf True >>> ninf == ninf True >>> nan == nan // nan对象时本身对象nan False >>> inf is float("inf") False >>> ninf is float("-inf") False >>> nan is float("nan") False >>> inf == float("inf") True >>> ninf == float("-inf") True >>> nan == float("nan") //前一个nan值不等于新建对象float("nan")的值 False
判断nan方法:
使用math模块: >>> import math >>> math.isinf(inf) True >>> math.isinf(ninf) True >>> math.isnan(nan) True >>> math.isinf(float("inf")) True >>> math.isinf(float("-inf")) True >>> math.isnan(float("nan")) True
利用自身判断: >>> def isnan(num): return num != num >>> isnan(float("nan")) True
使用numpy: >>> import numpy as np >>> >>> np.isnan(np.nan) True >>> np.isnan(float("nan")) True >>> np.isnan(float("inf")) False
相关文章推荐
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- Python 中的None以及 == 与 is 的区别,以及判断某个list或者dict元素是否为None
- python不使用type(obj) is **来判断变量的类型
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- python判断类型:想知道一个对象(实例或者变量)是什么类型,什么结构的
- python中如何判断一个变量的数据类型?(原创)
- Python中请使用isinstance()判断变量类型
- python中如何判断一个变量的数据类型?(原创)
- Python 判断变量类型
- Python 判断变量的数据类型
- Python中请使用isinstance()判断变量类型
- php中empty()、isset()、is_null()和变量本身的布尔判断区别
- Python 判断变量的数据类型
- Python学习--判断变量的数据类型
- python 判断变量类型
- python判断变量类型时,为什么不推荐使用type()方法
- python中如何判断变量的数据类型
- 判断变量是否存在(python)
- 判断变量是否存在(python)