一、類型變量
type
#判斷是否為整數(shù)
type(varObj) is types.IntType
StringType
FloatType
DictType
TupleType
ListType
BooleanType
isinstance
isinstance(aaa,str)
type與isinstance區(qū)別
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里調(diào)用才會捕獲異常,所以采用字符串參數(shù)。
命名空間
'varname' in locals().keys()
'varname' in dir()
dir()不帶參數(shù)時,返回當(dāng)前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時,返回參數(shù)的屬性、方法列表。如果參數(shù)包含方法dir(),該方法將被調(diào)用。如果參數(shù)不包含dir(),該方法將最大限度地收集參數(shù)信息。
三、None與空字符串
有句話說的Python中萬物皆為對象。None也是對象。這就好理解None與空字符串NULL區(qū)別:
type(None)
<class 'NoneType'>
type('')
<class ''str'>
>>> None == 0 //(int)
False
>>> None == ' ' //(str)
False
>>> None == False //(boolean)
False
四、is和==區(qū)別
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在用==值比較時,可以認(rèn)為,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
|