Python中的None是一个经常被用到的知识点,但是很多人对于None的内涵把握的还是不够精确,今天就和我一起好好理解下这个小知识点吧。

1.None表示空,但它不等于空字符串、空列表,也不等同于False,通过下面的代码进行验证。

 a = ''
b = False
c = [] print(a==None) #比较值
print(b==None)
print(c==None) print(a is None) False
False
False
False

2.在写代码的过程中,会对某些代码进行判空操作。比如有一个变量a,那么if not a和if a is None两者有区别吗?如果说没有区别,那么不管a为何值时,这两个判断语句会返回相同的结果,但事实是这样吗?一起看下面这段代码,体会一下对None的判空操作

 def fun():
return None a =fun()
if not a: #逻辑运算
print('S')
else:
print('F') if a is None:
print('S')
else:
print('F') S
S

运行代码发现,结果是一样的,这是由于我们调用函数时,会返回None,那么此时两个判断语句返回的结果是一样的,但是如果我们将a的值换成一个空列表,会出现什么结果呢?

 def fun():
return None a = []
if not a: #逻辑运算
print('S')
else:
print('F') if a is None:
print('S')
else:
print('F') S
F

运行结果,发现会打印不一样的值。那么这是为什么呢?对于not a它的意思相当于True,所以会打印出S,而a is None是比较运算,它们不属于同一种类型,因此会出现不一样的打印值。

本文转载于tps://www.py.cn/faq/python/13508.html

最新文章

  1. asp.net 读取导入的project(mpp)文件
  2. TP5.0源生Excel导出
  3. [Asp.Net]获取客户端ip和mac地址
  4. ROS 使用自带和usb摄像头获取图像
  5. LightOJ1105 Fi Binary Number(数位DP)
  6. wait函数返回值总结
  7. Linux下multipath多路径配置
  8. 望大神批评教育国庆无聊之作:ObjectValidator
  9. poj2479(dp)
  10. Cisco 学会使用Telnet、SSH
  11. 创建一个JS函数,运用JS中arguments对象
  12. selenium-webdriver的二次封装(十)
  13. 人脸识别Android SDK集成
  14. 解决关于 在android studio 出现的 DELETE_FAILED_INTERNAL_ERROR Error while Installing APK 问题
  15. 新建体(3):dbms_job下新建一个job定期自动执行存储过程
  16. Keepalived详解(五):Keepalived集群中MASTER和BACKUP角色选举策略【转】
  17. Omi-router实战 Sorrow.X的web简历
  18. C# 进程的挂起与恢复
  19. [Lua]内存泄漏与垃圾回收
  20. CentOS7安装Tomcat

热门文章

  1. JavaString在虚拟机中的实现
  2. c语言复杂申明解释程序
  3. 使用RESTful风格开发
  4. C#-片段:外侧代码
  5. List&Set
  6. lua table操作
  7. LEFT JOIN 关键字语法
  8. 阶段5 3.微服务项目【学成在线】_day08 课程图片管理 分布式文件系统_06-分布式文件系统研究-fastDFS安装及配置文件说明
  9. @Component默认是单例还是多例?
  10. Linux 7 关闭、禁用防火墙服务