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

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判断是空的实例分享

本文地址: http://www.cppcns.com/jiaoben/python/324671.html

python判断输入的是空白_python判断是空的实例分享相关推荐

  1. python判断字符串是纯数字_python判断字符串是否纯数字的方法

    本文实例讲述了python判断字符串是否纯数字的方法.分享给大家供大家参考.具体如下: 判断的代码如下,通过异常判断不能区分前面带正负号的区别,正则表达式可以根据自己需要比较灵活的写,通过isdigi ...

  2. java用if判断输入字符_JAVA中如何判断一个输入是数字还是字符串

    展开全部 1.使用Character.isDigit(char)判断 String str = "123abc"; if (!"".equals(str)) { ...

  3. c语言中判断输入是否为数字_C 判断

    判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 f ...

  4. python精彩编程200例百度_Python趣味编程与精彩实例

    前言 序 1Python基础 1.1简介 1.2诞生 1.3应用 1.4优点 2开发环境配置 2.1Python下载与安装 2.2VSCode安装 2.3VSCode辅助插件 3VSCode使用 3. ...

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

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

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

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

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

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

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

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

  9. python中字典del的用法_python中字典(Dictionary)用法实例详解

    本文展示了字典在python中的使用.分享给大家参考.具体分析如下: 字典是一种映射结构的数据类型,由无序的"键值对"组成.字典的关键字必须是不可改变的类型,如字符串.数字和元组: ...

最新文章

  1. 基于变分自动编码器(Variational Autoencoders)进行推荐系统的实施、Keras实现并可视化训练和验证误差、最后给出topK准确率和召回率
  2. 远程桌面网关Apache Guacamole 发布1.0.0版本\n
  3. 解决Ubuntu17.04不能安装git的问题 E: Package 'git' has no installation candidate
  4. C中不能直接比较两个double类型
  5. 关于Excel中的【照相机】功能。(我们通过此功能,可以通过Excel在图片上面画上一些内容后,连同图片和内容一起弄出来)
  6. [DB2]DB2中的数值类型
  7. python删除指定字符_python删除字符串中指定字符的方法
  8. bzoj 3156: 防御准备(斜率DP)
  9. 【学术分享】发顶会论文,怎么就那么难?
  10. L2TP-***通用原理取证及在华为防火墙上的实施
  11. grub2引导linux内核,启动流程、模块管理、BootLoader(Grub2)
  12. HTML用户名判断,用户名判断(练习)
  13. 模拟鼠标键盘操作,含硬件模拟技术。
  14. JAVA五子棋人人对战的实现
  15. flash as3使用,播放声音和加载外部声音文件
  16. mybatis-plus 分页类型转换工具类
  17. python可视化工具:matplotlib+pyecharts使用详解
  18. 在线直线度测量方法的研发方向
  19. 【市场调查与预测】市场调查的定义与作用
  20. fluentdata 访问mysql_AgileDataAccess

热门文章

  1. 刘韧:好记者到故事为止
  2. CTS 问题 第二篇
  3. 常用验证码的识别方法
  4. Everything扫描非C盘
  5. if- 条件判断———if语句的嵌套
  6. 解决ubuntu下提示未信任的应用启动器的问题
  7. 初试TinyWebServer项目所遇到的问题
  8. dynamixel舵机在ros下的workbnech使用
  9. BOS物流管理系统-第一天
  10. 基于微信小程序的校友录系统