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