python判断是空的实例分享


Posted in Python onJuly 06, 2020

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

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 循环遍历字典元素的简单方法
Sep 11 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
python+opencv实现动态物体追踪
Jan 09 Python
详解用python生成随机数的几种方法
Aug 04 Python
Python中Unittest框架的具体使用
Aug 27 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
Python高级特性——详解多维数组切片(Slice)
Nov 26 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
May 07 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
python反扒机制的5种解决方法
Feb 06 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 11 Python
python三引号如何输入
Jul 06 #Python
如何验证python安装成功
Jul 06 #Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 #Python
Keras实现DenseNet结构操作
Jul 06 #Python
基于Python和C++实现删除链表的节点
Jul 06 #Python
基于Python 的语音重采样函数解析
Jul 06 #Python
python interpolate插值实例
Jul 06 #Python
You might like
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
javascript之Partial Application学习
2013/01/10 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
使用Python构建Hopfield网络的教程
2015/04/14 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
Python与C/C++的相互调用案例
2021/03/04 Python
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
护理个人求职信范文
2014/01/08 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
作风建设年活动总结
2014/08/27 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
2015年加油站工作总结
2015/05/13 职场文书
小学运动会报道稿
2015/07/22 职场文书
运动会广播稿20字
2015/08/19 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
Java常用函数式接口总结
2021/06/29 Java/Android
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python