打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python 类型判断 变量存在判断 None与空字符串 is和==区别 nan inf判断

一、类型变量

type

#判断是否为整数type(varObj) is types.IntType  StringType   FloatType  DictType  TupleType  ListType  BooleanType

isinstance

isinstance(aaa,str)

type与isinstance区别

class A:    passclass B(A):    passisinstance(A(), A)    # returns Truetype(A()) == A        # returns Trueisinstance(B(), A)    # returns Truetype(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 ddFalse>>> d == ddTrue

五、nan inf

记忆:对于is判断,符合is的对象比较定义:对象is对象本身,对象不is新建对象。对于==判断,除了nan,符合==的值比较的定义。对于nan在用==值比较时,可以认为,nan对象的值不==该nan对象的值,nan对象的值不==新建nan对象的值。

>>> inf = float("inf")>>> ninf = float("-inf")>>> nan = float("nan")>>> inf is infTrue>>> ninf is ninfTrue>>> nan is nanTrue>>> inf == infTrue>>> ninf == ninfTrue>>> nan == nan   // nan对象时本身对象nanFalse>>> 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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
给初学者:JavaScript 的常见注意点
Python技法:浮点数取整、格式化和NaN处理
javascript 关于数字的几个注意点,NAN,Finite,InFinity
python 中正无穷,负无穷的表示
javascript之Number类型
JavaScript 基本类型值
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服