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

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

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

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

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

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

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

  >>> x=1>>> not xFalse>>> x=[1]>>> not xFalse>>> x=0>>> not xTrue>>> x=[0] >>> not xFalse复制代码

  在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 NoneFalse>>> y is NoneTrue>>> >>> >>> not xTrue>>> not yTrue>>> >>> >>> not x is None>>> True>>> not y is NoneFalse>>>复制代码

  也许你是想判断x是否为None,但是却把 x==[] 的情况也判断进来了,此种情况下将无法区分。

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

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

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

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

目录
相关文章
|
8天前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
17 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
5天前
|
测试技术 Python
Python MagicMock: Mock 变量的强大工具
Python MagicMock: Mock 变量的强大工具
23 8
|
5天前
|
存储 C语言 Python
通过 Cython 带你认清 Python 变量的本质
通过 Cython 带你认清 Python 变量的本质
28 8
|
7天前
|
Python
Python变量用法——单下划线变量名_ 原创
Python变量用法——单下划线变量名_ 原创
22 0
|
7天前
|
Python
Python变量用法——变量解包
Python变量用法——变量解包
18 0
|
2月前
|
Python
|
2月前
|
Python
Python变量的作用域_参数类型_传递过程内存分析
理解Python中的变量作用域、参数类型和参数传递过程,对于编写高效和健壮的代码至关重要。正确的应用这些概念,有助于避免程序中的错误和内存泄漏。通过实践和经验积累,可以更好地理解Python的内存模型,并编写出更优质的代码。
18 2
|
2月前
|
存储 数据采集 人工智能
一:《Python基础语法汇总》— 变量与数据类型
【8月更文挑战第15天】本篇文章详细讲述了关于变量的命名规范,id()函数及Python的数据类型与强制转换
24 2
|
2月前
|
存储 Python 容器
python声明变量
【8月更文挑战第4天】
45 8
|
2月前
|
数据处理 Python
python变量重新赋值
【8月更文挑战第4天】
70 6
下一篇
无影云桌面