日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python 類型判斷 變量存在判斷 None與空字符串 is和==區(qū)別 nan inf判斷

 LibraryPKU 2019-04-22

一、類型變量

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多