在看代码时有几个逻辑关系一直很模糊,今天来捋一捋:

  • 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 xnot 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: 的区别相关推荐

  1. python 找质数的个数_盘一盘 Python 系列特别篇 All 和 Any

    本文含 3758 字,9图表截屏建议阅读 10 分钟 本文是 Python 系列的特别篇的第十四篇 特别篇 1 - PyEcharts TreeMap 特别篇 2 - 面向对象编程 特别篇 3 - 两 ...

  2. df满足条件的值修改_文科生学 Python 系列 16:泰坦尼克数据 2(缺失值处理)

    第八课:案例分析 - 泰坦尼克数据 本节课将重点分析泰坦尼克号沉船事故,我们将探索是什么因素决定了最后是否生还. 我们将将前面课程所学过的知识点融会贯通,举一反三 新增知识点: 缺失值处理:panda ...

  3. 文科生学python系列_文科生学 Python 系列 3:函数

    文科生学Python系列3:函数​www.jianshu.com 还是第二课的内容 函数是一段可以重复使用的代码,往往是为了解决某个特定的人物.在 Python 中有两种函数:内置函数和自定义函数. ...

  4. python布尔测试对象_面试题十九期-测试开发面试题之python系列-这个中~

    坚持梦想 就算所有人都不支持你.这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但努力了就不会有遗憾. 测试开发python系列面试题 01 单选题 1.下列哪个语句在P ...

  5. 【直播资料下载】Python 系列直播——深入Python与日志服务,玩转大规模数据分析处理实战第二讲...

    流畅的Python数据处理及大数据处理ETL Python 系列直播--深入Python与日志服务,玩转大规模数据分析处理实战 直播讲师:丁来强(成喆)--阿里高级技术专家,从事阿里云日志服务相关的产 ...

  6. [CentOS Python系列] 六.阿里云搭建Django网站详解

    本篇文章主要介绍讲述部署阿里云服务器Django网站环境,并通过IP地址访问网页的过程.写代码过程中往往第一步需要解决的就是配置开发环境,对于新手来说,这是非常头疼的事情,而当配置好之后或者对于老手来 ...

  7. [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  8. [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  9. 从源代码学Python系列目录

    Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 从源代码学Python系列 第 ...

最新文章

  1. NBT:扩增子及其他测序的最小信息标准和测序规范(MIMARKS)
  2. turtlebot3入门教程
  3. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? ide
  4. 听到表扬的飞鸽传书2011
  5. 神经网络学习历程与总结
  6. python-PyQuery详解
  7. 计算机本地磁盘包括,电脑中系统文件夹和本地磁盘各是什么意思?又有什么不同?...
  8. WPF的TextBox产生内存泄露的情况
  9. Python中单线程、多线程和多进程的效率对比实验
  10. [主席树] 湖南集训 谈笑风生
  11. 区块链基本概念和名词解释
  12. c语言数码管中断器,数码管动态显示 定时器中断 数码管动态显示不正常
  13. 为了沙漠中的奋进者:“视人为人”的陕煤曹家滩 智慧矿区
  14. iOS 7 之 Sprites
  15. 一键seo提交收录_SEO学习的作用,及SEO学习操作步骤!
  16. 在亚马逊严抓测评的风口下,亚马逊买家秀关联视频或许是一个安全有效的方式
  17. 淘宝天猫商家运营,淘宝验号查号是什么意思,有什么作用
  18. 列表3:修改删除函数实操
  19. fiddler使用方法
  20. Mipony 免费的网络硬盘批量下载工具,下载网盘文件省时省力!

热门文章

  1. 学术讲座: 多标签主动学习之 MASP
  2. jenkins实现持续集成、持续部署
  3. Solr云(SolrCloud)
  4. insmod加载分析
  5. 【最新干货】抖音短视频如何运营?
  6. 『统计学』第四部分:回归分析和卡方检验
  7. c 语言调用java_C语言调用java的方法
  8. JSP include参数的中文乱码问题
  9. Java集合之Stack(出自Java知识体系)
  10. 什么是Vue.js?适合入门小白(笔记1)