在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码:

if a is None:

do something.else:

do the other thing.

这样写看起来不错,但实际上会有问题。一般来讲,Python中会把下面几种情况当做空值来处理:

None

False

0,0.0,0L

'',(),[],{}

其中None的特殊之处在于,它既不是数值0,也不是某个数据结构的空值,它本身就是一个空值对象。它的类型是NoneType,它遵循单

例模式,也就是说,在同一命名空间下的所有None其实质上都是同一个空值对象。

>>> id(None)

1795884240

>>> None == 0

False

>>> None == ''

False

>>> a = None

>>> id(a)

1795884240

>>> a == None

True

上面的判断显然不符合我们的期望:只有当a被显示赋值为None的情况下,a==None才为True。

那么,对于Python中更为广义的None值判断,我们应该怎么做呢?

>>> a = ''    #这里仅以空字符串为例,其他空值同样适用

>>> if a:

...        print 'a is not empty'

...    else:

...        print 'a is a empty string'

'a is a empty string.'

可以看出,if a的判断方式得出了我们想要的结果,那么if a的判断方式究竟是一个怎样的过程呢?

if a会首先去调用a的__nonzero__()去判断a是否为空,并返回True/False,若一个对象没有定义__nonzero__(),就去调用它的__len__()来

进行判断(这里返回值为0代表空),若某一对象没有定义以上两种方法,则if a的结果永远为True

接下来验证一下上面的说法:

>>>class A(object):

...        def __nonzero__(self):

...            print 'running on the __nonzero__'

...            return True

>>>class B(object):

...        def __len__(self):

...            print 'running on the __len__'

...            return False

>>> a, b = A(), B()

>>>if a:

...        print 'Yep'

...    else:

...        print 'Nop'

running on the __nonzero__

Yep

>>>if b:

...        print 'Yep'

...    else:

...        print 'Nop'

running on the __len__

Nop

内容扩展:

如何判断python函数返回的是否是空

我不知道你这里的空是什bai么意思 是None还是‘'

我都都给你du讲讲:

None是一zhi个空dao的对象,代表什么都没有。

而'',是一个字符串对象,代表一个空的字符串

如果返回值是None,你就用 if None:判断

如果返回‘',你就用if len(‘') == 0:判断

网友分享:

可以直接bai把函数放到if后面当du作条件,如果为空的话zhi判断结果dao是false,例如:

def test():

return None

if test():

print True

else:

print False

到此这篇关于python判断是空的实例分享的文章就介绍到这了,更多相关python怎么判断是空的内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

python判断数值为空_python判断是空的实例分享相关推荐

  1. python打印国际象棋规则口诀_python输出国际象棋棋盘的实例分享

    国际象棋是当今国际上最流行的智力体育运动项目.青年人下棋可以锻炼思维.增强记忆力和培养坚强的意志:中年人下棋可以享受美学:老年下棋可以很好的休息娱乐.国际象棋游戏有自己的规则,需要两个人将棋子落在棋盘 ...

  2. python判断一个对象是否为空_python 判断对象是否为空

    在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码:if a is None: do something. else: do the other thing. 云海天教程网,大 ...

  3. python判断正负的函数_python判断正负数方式

    我就废话不多说了,大家还是直接看代码吧! a1 = raw_input("please input a number") a = int(a1) if(a!=0): if(a &g ...

  4. python判断正数还是负数_python判断正负数方式

    我就废话不多说了,大家还是直接看代码吧! a1 = raw_input("please input a number") a = int(a1) if(a!=0): if(a &g ...

  5. python输出国际象棋棋盘_python输出国际象棋棋盘的实例分享

    国际象棋是当今国际上最流行的智力体育运动项目.青年人下棋可以锻炼思维.增强记忆力和培养坚强的意志:中年人下棋可以享受美学:老年下棋可以很好的休息娱乐.国际象棋游戏有自己的规则,需要两个人将棋子落在棋盘 ...

  6. python打印国际象棋棋盘_python输出国际象棋棋盘的实例分享

    国际象棋是当今国际上最流行的智力体育运动项目.青年人下棋可以锻炼思维.增强记忆力和培养坚强的意志:中年人下棋可以享受美学:老年下棋可以很好的休息娱乐.国际象棋游戏有自己的规则,需要两个人将棋子落在棋盘 ...

  7. 用python输出国际象棋棋盘_python输出国际象棋棋盘的实例分享

    国际象棋是当今国际上最流行的智力体育运动项目.青年人下棋可以锻炼思维.增强记忆力和培养坚强的意志:中年人下棋可以享受美学:老年下棋可以很好的休息娱乐.国际象棋游戏有自己的规则,需要两个人将棋子落在棋盘 ...

  8. python画黑白线条_Python实现手绘图效果实例分享

    首先我们来看看原图: 接着我们来看看效果图: 通过分析我们不难发现以下特征: 主要颜色为黑白灰 边界线条较重 相同或相近色趋于白色 略有光源效果 需要用到的库有: numpy PIL 代码实现: im ...

  9. python手绘教学_Python实现手绘图效果实例分享

    首先我们来看看原图: 接着我们来看看效果图: 通过分析我们不难发现以下特征: 主要颜色为黑白灰 边界线条较重 相同或相近色趋于白色 略有光源效果 需要用到的库有: numpy PIL 代码实现: im ...

  10. python判断list是否为空_Python - 判断list是否为空

    原博文 2018-02-01 19:15 − Python中判断list是否为空有以下两种方式: 方式一: 1 list_temp = [] 2 if len(list_temp): 3 # 存在值即 ...

最新文章

  1. MVC+Ninject+三层架构+代码生成 -- 总结(一、數據庫)
  2. 【UOJ#388】【UNR#3】配对树(线段树,dsu on tree)
  3. Fragment专辑(一):Fragment简介
  4. RocketMQ源码解析:Producer发送消息+Broker消息存储
  5. SRM6.1安装配置指南
  6. TypeScript入门知识五(面向对象特性二)
  7. JavaScript对象系统说明图
  8. mysql 学习笔记 02创建表
  9. save(),saveOrUpdate(),merge()的区别
  10. Java递归例子——求x的y幂次方
  11. 用ShopEx网上开店之安装Zend插件[2]
  12. 宠物合成网站源码_为什么加工宠物食品做不到真正的“清洁”?
  13. graphql是什么_什么是GraphQL?
  14. 标量、向量、矩阵、张量
  15. 关于vmplayer 和vmrun 同时使用说明文档
  16. 对我启发最大的数学学习方法
  17. 统计学中p值计算公式_统计学中的p值怎么算,具体步骤
  18. adb安装apk程序
  19. [JS]Tue Feb 01 2022 000000 GMT+0800 (中国标准时间) 日期格式化
  20. vlog常用参数解析

热门文章

  1. AUTOSAR DCM
  2. 上海交通大学学生生存手册
  3. 手把手教你写一个点菜系统(附源码)
  4. 深圳大学计算机网络实验五:Socket编程
  5. SONiC(4)-Telemetry可视化
  6. STM32F103采集光照传感器BH1750程序,测试可以用
  7. 高德地图标记文字修改样式_地图标注有哪些优势?如何进行地图标注?
  8. STM32F7xx —— 启动文件和HAL库
  9. 心理学是怎样产生的?
  10. 辛苦开发的 App 被山寨?mPaaS 帮你为 APK 上把加固锁