言简意赅python系列---if not x: 和 if x is not None: 和 if not x is None: 的区别
在看代码时有几个逻辑关系一直很模糊,今天来捋一捋:
if not x:
if x is not None
if not x is None:
开始之前你必须要有一个这样的认识,清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。
即:
not None == not False == not '' == not 0 == not [] == not {} == not ()
1、 if not x:
not
与逻辑判断句if
连用,代表not
后面的表达式为False
的时候,执行冒号后面的语句,如:
x=False
if not x:print('hello world')
这时,就会输出hello world
说白了,就是not x
相当于if x is false, then True, else False
这一点还是相对比较好理解的。
2、 if x is not None: 和 if not x is None:
其实if x is not None:
和 if not x is None:
就是一回事,只是不同风格的写法,现在比较推荐的写法是if x is not None:
,清晰明了,就是判断x
是不是等于None
的情况,只有x
不是None
的时候才会执行冒号后的语句。
看看下面的代码,可以更深入的理解:
>>> x=[]
>>> y= None
>>> x is None
False
>>> y is None
True
>>> not x
True
>>> not y
True
>>> not x is None
True
>>> not y is None
False
>>> x is not None
True
>>> y is not None
False
可以看出not x
和not y
都为True
,就是文章开头讲的那个知识点,not []
和not None
是等价的,无法区分彼此。
理解if not x is None:
比较好的方法是,看成if not (x is None):
,这样理解起来就比较容易了,最后还是比较推荐使用if x is not None:
也是在谷歌推荐的写法。
欢迎大家多多交流学习 :)
言简意赅python系列---if not x: 和 if x is not None: 和 if not x is None: 的区别相关推荐
- python 找质数的个数_盘一盘 Python 系列特别篇 All 和 Any
本文含 3758 字,9图表截屏建议阅读 10 分钟 本文是 Python 系列的特别篇的第十四篇 特别篇 1 - PyEcharts TreeMap 特别篇 2 - 面向对象编程 特别篇 3 - 两 ...
- df满足条件的值修改_文科生学 Python 系列 16:泰坦尼克数据 2(缺失值处理)
第八课:案例分析 - 泰坦尼克数据 本节课将重点分析泰坦尼克号沉船事故,我们将探索是什么因素决定了最后是否生还. 我们将将前面课程所学过的知识点融会贯通,举一反三 新增知识点: 缺失值处理:panda ...
- 文科生学python系列_文科生学 Python 系列 3:函数
文科生学Python系列3:函数www.jianshu.com 还是第二课的内容 函数是一段可以重复使用的代码,往往是为了解决某个特定的人物.在 Python 中有两种函数:内置函数和自定义函数. ...
- python布尔测试对象_面试题十九期-测试开发面试题之python系列-这个中~
坚持梦想 就算所有人都不支持你.这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但努力了就不会有遗憾. 测试开发python系列面试题 01 单选题 1.下列哪个语句在P ...
- 【直播资料下载】Python 系列直播——深入Python与日志服务,玩转大规模数据分析处理实战第二讲...
流畅的Python数据处理及大数据处理ETL Python 系列直播--深入Python与日志服务,玩转大规模数据分析处理实战 直播讲师:丁来强(成喆)--阿里高级技术专家,从事阿里云日志服务相关的产 ...
- [CentOS Python系列] 六.阿里云搭建Django网站详解
本篇文章主要介绍讲述部署阿里云服务器Django网站环境,并通过IP地址访问网页的过程.写代码过程中往往第一步需要解决的就是配置开发环境,对于新手来说,这是非常头疼的事情,而当配置好之后或者对于老手来 ...
- [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql
从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...
- [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识
从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...
- 从源代码学Python系列目录
Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 从源代码学Python系列 第 ...
最新文章
- NBT:扩增子及其他测序的最小信息标准和测序规范(MIMARKS)
- turtlebot3入门教程
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? ide
- 听到表扬的飞鸽传书2011
- 神经网络学习历程与总结
- python-PyQuery详解
- 计算机本地磁盘包括,电脑中系统文件夹和本地磁盘各是什么意思?又有什么不同?...
- WPF的TextBox产生内存泄露的情况
- Python中单线程、多线程和多进程的效率对比实验
- [主席树] 湖南集训 谈笑风生
- 区块链基本概念和名词解释
- c语言数码管中断器,数码管动态显示 定时器中断 数码管动态显示不正常
- 为了沙漠中的奋进者:“视人为人”的陕煤曹家滩 智慧矿区
- iOS 7 之 Sprites
- 一键seo提交收录_SEO学习的作用,及SEO学习操作步骤!
- 在亚马逊严抓测评的风口下,亚马逊买家秀关联视频或许是一个安全有效的方式
- 淘宝天猫商家运营,淘宝验号查号是什么意思,有什么作用
- 列表3:修改删除函数实操
- fiddler使用方法
- Mipony 免费的网络硬盘批量下载工具,下载网盘文件省时省力!