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版微信跳一跳游戏辅助
Jan 11 Python
Python使用zip合并相邻列表项的方法示例
Mar 17 Python
Python学习小技巧总结
Jun 10 Python
Python文件如何引入?详解引入Python文件步骤
Dec 10 Python
Python中format()格式输出全解
Apr 12 Python
Python flask框架post接口调用示例
Jul 03 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
django框架单表操作之增删改实例分析
Dec 16 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
Feb 11 Python
Python通过字典映射函数实现switch
Nov 06 Python
Python实现微信表情包炸群功能
Jan 28 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 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 如何获取二维数组中某个key的集合
2014/06/03 PHP
linux中cd命令使用详解
2015/01/08 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
Python编程之string相关操作实例详解
2017/07/22 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
python导入pandas具体步骤方法
2019/06/23 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
精彩广告词大全
2014/03/19 职场文书
优秀校长事迹材料
2014/12/24 职场文书
宇宙与人观后感
2015/06/05 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
Spring 使用注解开发
2022/05/20 Java/Android
python绘制云雨图raincloud plot
2022/08/05 Python