python空值判断方式(if xxx和if xxx is None的区别及说明)
作者:Urmsone 发布时间:2022-04-01 20:18:42
标签:python,空值,判断
if xxx 和if xxx is None的区别
一、 if xxx
None,’’,0,[],{},() ,False都被判断为空值(not xxx等价)
如下代码输出所示,
if __name__ == '__main__':
print("---not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False)---")
print(not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False))
输出
---not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False)---
True
if xxx
如下代码输出所示,
if __name__ == '__main__':
print("---output a,b---")
a = []
b = None
print("a=[]")
print("b=None")
print("--- if x")
if a:
print("a")
else:
print("None")
if b:
print("b")
else:
print("None")
输出
---output a,b---
a=[]
b=None
--- if x
None
None
结论:
将空列表换成上述的其他空类型,结果一样。
如果需要过滤None值和空对象时(如[],{},''等),可使用这种写法
二、 if xxx is None
该写法可将None和其他空值对象区分开来
如下代码输出所示:
if __name__ == '__main__':
a = []
b = None
print("a=[]")
print("b=None")
print("--- is None")
if a is None:
print("None")
else:
print("a")
if b is None:
print("None")
else:
print("b")
输出
---output a,b---
a=[]
b=None
--- is None
a
None
结论:
需要区分[],{},'',()等空值对象与None的区别时时可使用这种写法
贴下简单的测试代码
if __name__ == '__main__':
print("---not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False)---")
print(not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False))
print("---output a,b---")
a = []
b = None
print("a=[]")
print("b=None")
print("--- if x")
if a:
print("a")
else:
print("None")
if b:
print("b")
else:
print("None")
print("--- is None")
if a is None:
print("None")
else:
print("a")
if b is None:
print("None")
else:
print("b")
print("--- not")
if not a:
print("None")
else:
print("a")
if not b:
print("None")
else:
print("b")
print("--- is not None")
if a is not None:
print("a")
else:
print("None")
if b is not None:
print("B")
else:
print("None")
来源:https://blog.csdn.net/Urms_handsomeyu/article/details/103350227


猜你喜欢
- 先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行
- 和我之前写的通过导入jdbc驱动jar包来连接mysql数据库而言,用mybatis来说可以有很多好处呀,首先mybatis,就是对jdbc
- 自定义过滤器就是有一个或两个参数的Python函数: (输入)变量的值  
- 我们在升级系统的时候,经常碰到需要更新服务器端数据结构等操作,之前的方式是通过手工编写alter sql脚本处理,经常会发现遗漏,导致程序发
- 阅读目录前言加密算法分类Python加密库DES加密AES加密RSA加密前言据记载,公元前400年,古希腊人发明了置换密码。1881年世界上
- MySQL中模式就是数据库SHOW DATABASES;show databases;罗列所有数据库名称CREATE DATABASE &l
- python列表变量可以存储一个元素,而列表是一个大容器,可以存储N多个元素,程序可以方便的对这些数据进行整体操作(可以存储多个不同的数据类
- 这篇论坛文章详细的讲解了使用SQL Server 2008管理非结构化数据的具体方法,更多内容请参考下文:microsoft SQL Ser
- 本文实例讲述了Python实现矩阵转置的方法。分享给大家供大家参考,具体如下:前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个
- 写在前面的话:此篇还是asp相关的,相信玩ASP的都有这个感觉,当数据有5万多条时-------just like音乐网,要调用最新的10条
- 遇到那种有很多图的微信公众号文章咋办?一个一个存很麻烦,应朋友的要求自己写了个爬虫。2.0版本完成了!完善了生成pdf的功能,可根据图片比例
- 前言pygame是用来开发游戏的一套基于SDL的模板,它可以是python创建完全界面化的游戏和多媒体程序,而且它基本上可以在任何系统上运行
- 所有代码都是网上百度出来的,通过个人实践找到适合自己的。采用的python 库是 pymouse、pykeyboard安装时直接p
- 1.现在有一个需求:我想在monitor应用中导入data文件夹下的apolos.py中的tes()函数并执行。打开monitor应用的视图
- 将数据写入Excel文件中,用python实现起来非常的简单,下面一步步地教大家。一、导入excel表格文件处理函数import xlwt注
- 在利用Keras进行实验的时候,后端为Tensorflow,出现了以下问题:1. 服务器端激活Anaconda环境跑程序时,实验结果很差。环
- 用df命令查了下,果然磁盘满了,因为当时分区采用系统默认,不知道为什么不能自动扩容!以后在处理这个问题!如图所示:[root@snsgou
- 本文实例讲述了flask框架自定义过滤器。分享给大家供大家参考,具体如下:除了一些内置的join length safe等过滤器外, fla
- 本文实例讲述了Python multiprocess pool模块报错pickling error问题解决方法。分享给大家供大家参考,具体如
- 举例如下:<HTML> <HEAD>