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 相关文章推荐
Python3.2中的字符串函数学习总结
Apr 23 Python
python实现人民币大写转换
Jun 20 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
May 21 Python
提升Python效率之使用循环机制代替递归函数
Jul 23 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
Jun 23 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
python二维图制作的实例代码
Dec 03 Python
python3判断IP地址的方法
Mar 04 Python
Python中的socket网络模块介绍
Jul 23 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
php 表单数据的获取代码
2009/03/10 PHP
PHP 超链接 抓取实现代码
2009/06/29 PHP
PHP 获取目录下的图片并随机显示的代码
2009/12/28 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
Yii配置文件用法详解
2014/12/04 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
微信公众号实现会员卡领取功能
2017/06/08 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
JS实现多选框的操作
2020/06/24 Javascript
python安装以及IDE的配置教程
2015/04/29 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
怎么快速自学python
2020/06/22 Python
解决python运行效率不高的问题
2020/07/20 Python
详解如何修改python中字典的键和值
2020/09/29 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
视图的作用
2014/12/19 面试题
生产班组长岗位职责
2014/01/05 职场文书
中层干部竞争上岗演讲稿
2014/01/13 职场文书
本科生职业生涯规划书范文
2014/01/21 职场文书
优秀应届生求职信
2014/06/16 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript