百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

python 判断变量是否是 None 的三种写法

liuian 2024-11-28 00:42 50 浏览

代码中经常会有变量是否为None的判断,有三种主要的写法:

  • 第一种是 if x is None
  • 第二种是 if not x:
  • 第三种是 if not x is None (这句这样理解更清晰 if not (x is None) ) 。

如果你觉得这样写没啥区别,那么你可就要小心了,这里面有一个坑。先来看一下代码:

当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢?

私信小编01即可获取大量Python学习资料

>>> x = 1
>>> not x
False
>>> x = [1]
>>> not x
False
>>> x = 0
>>> not x
True
>>> x = [0]     
>>> not x
False
复制代码

在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False ,即:

not None == not False == not '' == not 0 == not [] == not {} == not ()
复制代码

因此在使用列表的时候,如果你想区分 x==[]x==None 两种情况的话, 此时 if not x: 将会出现问题:

#Python学习交流群:531509025

>>> 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是否为None,但是却把 x==[] 的情况也判断进来了,此种情况下将无法区分。

对于习惯于使用if not x这种写法的pythoner,必须清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。

而对于 if x is not Noneif not x is None 写法,很明显前者更清晰,而后者有可能使读者误解为 if (not x) is None ,因此推荐前者,同时这也是谷歌推荐的风格

结论:

if x is not None 是最好的写法,清晰,不会出现错误,以后坚持使用这种写法。

使用 if not x 这种写法的前提是:必须清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。

相关推荐

怎么还原电脑(怎么还原电脑桌面图标)

1、开启电脑电源,然后出现滚动的小圆圈的时候按住电源键强制关机。2、重复上述操作2到3次,直到出现“选择一个选项”界面“,点击“疑难解答”。3、点击“重置此电脑”。4、点击“保留我的文件”或“删除所有...

32位win8系统(32位win8pe)

问的是32位win8系统能不能安装win10,这个WIN10和32位的win8系统没任何关系,只要你的硬件达到win10的要求就能安装了。在安装win10的时候,要注意的一点是win10系统也是有32...

xp系统纯净版一键装机软件(纯净版xp系统安装步骤)

不行的,使用360系统重装是不能更换电脑的操作系统的。因为360系统重装的原理只是把系统盘里维持系统运转必备的文件保留下来(已丢失和损坏的系统文件重新下载生成和修复),其他的文件全删除,(严格来说,这...

开机慢是什么原因(开机很慢怎么回事)

手机开机慢可能有多种原因,以下是一些常见的原因:1.应用程序过多:如果您的手机上安装了大量的应用程序,这些应用程序可能会在开机时自动启动,从而导致开机时间变慢。2.内存不足:如果您的手机内存不足,...

普联无线路由器(普联无线路由器- tl - wdr7620 千兆版)

安装设置步骤参考如下:接线方式,电话线接modem的adsl网口,modem的lan网口分线到无线路由器的wan网口,无线路由器的lan网口分线到电脑网口;电脑打开任意浏览器,地址栏输入tplog...

edge怎么改成ie(edge怎么改成IE内核)

你需要把你的电脑系统升级为windows10以上版本,这样就可以把IE浏览器更新为edge浏览器。这个edge浏览器是windows10以上版本所自带的浏览器,只要更新完了之后,它就安装在电脑上了,整...

腾讯企业qq官网首页(腾讯企业qq官网首页登录)
  • 腾讯企业qq官网首页(腾讯企业qq官网首页登录)
  • 腾讯企业qq官网首页(腾讯企业qq官网首页登录)
  • 腾讯企业qq官网首页(腾讯企业qq官网首页登录)
  • 腾讯企业qq官网首页(腾讯企业qq官网首页登录)
windows7旗舰版卡顿严重解决方法
windows7旗舰版卡顿严重解决方法

运行win7系统卡顿,涉及电脑软硬件问题:一、电脑硬件问题:电脑配置过低或者电脑硬件老化严重,导致在运行win7系统出现莫名卡顿。解决方法:给电脑增加内存、换固态硬盘,这样能有效的解决电脑卡顿变慢。二、系统缓存垃圾文件太多或者文件碎片化。解...

2025-11-11 16:55 liuian

下载钉钉安装到手机(下载钉钉的app并安装)
  • 下载钉钉安装到手机(下载钉钉的app并安装)
  • 下载钉钉安装到手机(下载钉钉的app并安装)
  • 下载钉钉安装到手机(下载钉钉的app并安装)
  • 下载钉钉安装到手机(下载钉钉的app并安装)
小米随身wifi驱动官方下载电脑版

如果您在安装小米随身WiFi驱动程序时遇到问题,可能有几个原因导致无法安装:1.兼容性问题:确保您正在尝试安装适用于您的操作系统版本和硬件设备的正确驱动程序。检查确保驱动程序与您的设备兼容,并尝试下...

软盘驱动器是什么设备(软盘驱动器是什么设备组成)

可能是恢复BIOS初始值造成的。开机时按【DEL】键,进入BIOS,将LegacyDiskettebA[1.44M,3.5in.]设置成[Disabled],保存退出即可。(...

ie浏览器清理缓存(ie浏览器清理缓存怎么操作的)

1、首先,可以通过直接清理使用IE浏览器下载的文件,进行缓存的清理,点击浏览器右侧的图标。2、点击选择下载,查看浏览器下载过的文件,点击将其清除。3、还有一种清理方法,点击浏览器上方工具栏最有侧的省略...

华硕bios设置启动项(华硕bios设置启动项在哪)

华硕进入bios设置启动项的方法1、开机时长按F2键就可以进入bios启动项   2、按方向键移动光标并选择到BOOT(工具)设置选项。  ...

免费海外网站cdn加速(免费海外网站cdn加速软件)

1.CDN加速TCP连接是可行的。2.CDN通过以下几个原因来加速TCP连接:首先,CDN可以在全球范围内部署服务器节点,使得用户可以从离他们更近的服务器获取内容,减少了网络延迟;其次,CDN可以...

win10电脑点关机没反应(windows10电脑关机点了没反应)

设置方法:  1、在win10系统桌面,按下WIN键+R快捷键,打开【运行】窗口,输入main.cpl然后回车确定;  2、这样就打开了鼠标属性对话框,点击【鼠标键】,可以通过滑动双击速度中的游标...