聊聊python中not 与 is None的区别
作者:橘子甜不甜 发布时间:2023-01-18 22:20:47
原因:
list 获得的数据为空: 显示值为 [ ]
不同的判断--- is None
----not
两者结果不一样分析:
总之:
not 判断的是内容,而is None则涉及到这个 list 或 dict 是否声明并定义
补充:关于Python not 及is None的有趣现象(两者的区别)
笔者小白最近在刷题的过程中,遇到一个有趣的现象。
在使用 if A is None 来实现判断条件的时候,最后程序没有通过。这里的A代表之前定义的list类型的数据。最用改成if not A才通过。
那么到底判断A为空两者有什么区别呢。
笔者小白发现A为空时,not A 就是True,但是这并不代表该对象没有定义,也不代表该对象没有其它的属性。它只是代表A中元素为空,仅此而已。
如果要看对象是否有定义,就要使用 is None来判断。
补充:Python的if条件语句中的 X is None 和 not X的区别
在算法题和日常工作中总会遇到条件语句中有is None 和 not 出现,总是分不清它们的用途,今天在这里做一个总结。
if X is None和if not X的具体用法
Python中not是一个逻辑判断词,结合布尔类型True和False来运用,not True就是False,not False就是True。看了一些网上资料后,可以把not X 理解为
if x is false, then True, else False
Python中 is None就是判断对象是否有定义
举个例子
list1 = []
list2 = None
print("\n--测试1--\n")
if list1 is None:
print("is None的用法,输出list1的内容:\t")
print(list1)
print("------分割线------")
if not list1:
print("not的用法,输出list1的内容:\t")
print(list1)
print("\n--测试2--\n")
if list2 is None:
print("is None的用法,输出list2的内容:\t")
print(list2)
print("------分割线------")
if not list2:
print("not的用法,输出list2的内容:\t")
print(list2)
结果如图:
可以看到:
list1是[],此时只有not判断有输出,因为list1虽然是空,但是是有定义的,所以此时None的判断不成立,所以没有输出,而list1中是空的,not空为真,所以输出这个list1;
list2是None,此时两个条件判断都有输出,因为 None == None,所以有输出,not None 为True 所以也会有输出。
总结一下:
在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False;
想使用if not x的话,一定要搞清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。
来源:https://blog.csdn.net/luolang_103/article/details/98210502
猜你喜欢
- 在认识ImageMagick之前,我使用的图像浏览软件是KuickShow,截图软件是KSnapShot,这两款软件都是KDE附带的软件,用
- Request.Cookies.Clear()这个方法并不是删除Cookie 删除 Cookie(即从用户的硬盘中物理移除 Cookie)是
- 本文实例讲述了PHP使用自定义key实现对数据加密解密的方法。分享给大家供大家参考,具体如下:客户端和服务端通信时,有个场景很常见,通过一个
- 如何用通过Web访问OLAP数据? <% Set Conn=Server.CreateObject(″A
- 神经网络框架使用方法及设计思想在框自己手写架上基本模仿pytorch,用以学习神经网络的基本算法,如前向传播、反向传播、各种层、各种激活函数
- 是否曾经有过这样的经历:把一个元素置于另一个元素之上,而希望下面的那个元素成为可点击的?现在,利用css的pointer-events属性即
- 如何用ASP发送HTML格式的邮件?HTML格式的邮件可以把网页上的所有元素,包括文字和图片集成保存在一个文件中,阅读和链接非常便捷,请问在
- 接下来我利用一点空余时间发一个函数里面包含和添加和删除功能。实验的架构可以使用IIS.5WEB服务器ACCESS数据库。这个我其实不用说的很
- 这几天刚刚做了这个东西,有网友问到,所以分享一下。ie6、firefox2 通过,麻烦有ie7的网友测试一下,由于有其他代码,剖析出来麻烦,
- 最近在内部讨论关于”完美三栏”的话题,看到一篇”In Search of the Holy Grail“,相当的好.故此翻译之.In Sea
- 前几天写了一个ajax的,总感觉代码比较多,今天晚上又得写了一下,感觉代码还是比较多,但还好的是,比较通用。谁有办法优化一下当然好。&nbs
- 问题描述:使用 SQL 2005 w/ SP2 的汇出汇入精灵将数据从 Access 汇入到 SQL2005 发生了错误,但使用在SQL 2
- 即使在不太复杂的样式表中,也可能会有两个或者更多个规则找到同一元素。CSS通过一个叫做层叠(cascade)的过程处理这种冲突。
- 我就废话不多说了,直接上代码吧!集成环境:win10 pycharm #!/usr/bin/env python3.5.2# -*- cod
- 近期,MSN、江民等知名网站相继受到了黑客的威胁和攻击,一时间网络上风声鹤唳。本报编辑部接到本文作者(炽天使)的电话,他详细讲述了发现国内最
- 本文实例讲述了PHP扩展Swoole实现实时异步任务队列。分享给大家供大家参考,具体如下:假如要发100封邮件,for循环100遍,用户直接
- 上传问题可以说是网络编程中经常遇到的,也是一个很重要的问题,我们不仅要实现上传文件,图片等基本功能,还有考虑到上传程序的安全性,本文介绍了一
- 遇到一个很奇怪的现象,在给页面添加“打印”按钮时,发现网页在IE6下居然不能打印,弹出一个对话框,遇到脚本错误。查看错误详细:定位到 url
- 工作闲余,除抱有浓厚兴趣领域,我很不喜欢看些晦涩难懂的文字,于是想像茶余饭后的闲聊,随谈点话题。一次和一朋友吃饭聊天,随便聊到了他最近做的一
- NextGEN Gallery是Wordpress中著名的相册插件,遗憾的是不支持中文等unicode字符,本文将介绍如何将目录转换为拼音(