小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 LibraryPKU 2019-04-22

一、類(lèi)型變量

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)用才會(huì)捕獲異常,所以采用字符串參數(shù)。

命名空間

'varname' in locals().keys()
'varname' in  dir()

dir()不帶參數(shù)時(shí),返回當(dāng)前范圍內(nèi)的變量、方法和定義的類(lèi)型列表;帶參數(shù)時(shí),返回參數(shù)的屬性、方法列表。如果參數(shù)包含方法dir(),該方法將被調(diào)用。如果參數(shù)不包含dir(),該方法將最大限度地收集參數(shù)信息。

三、None與空字符串

有句話(huà)說(shuō)的Python中萬(wàn)物皆為對(duì)象。None也是對(duì)象。這就好理解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對(duì)象是否就是b對(duì)象,是通過(guò)id來(lái)判斷的。
==判斷的是a對(duì)象的值是否和b對(duì)象的值相等,是通過(guò)value來(lái)判斷的。

>>> d = {"a":1}
>>> dd = d.copy()
>>> d is dd
False
>>> d == dd
True

五、nan inf

記憶:對(duì)于is判斷,符合is的對(duì)象比較定義:對(duì)象is對(duì)象本身,對(duì)象不is新建對(duì)象。對(duì)于==判斷,除了nan,符合==的值比較的定義。對(duì)于nan在用==值比較時(shí),可以認(rèn)為,nan對(duì)象的值不==該nan對(duì)象的值,nan對(duì)象的值不==新建nan對(duì)象的值。

>>> 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對(duì)象時(shí)本身對(duì)象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")   //前一個(gè)nan值不等于新建對(duì)象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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多