ifnot在python中的⽤法_python中not的⽤法
python中的not具体表⽰是什么:
js解压zip在python中not是逻辑判断词,⽤于布尔型True和False,not True为False,not False为True,以下是⼏个常⽤的not的⽤法:
(1) not与逻辑判断句if连⽤,代表not后⾯的表达式为False的时候,执⾏冒号后⾯的语句。⽐如:
a = False
if not a:  (这⾥因为a是False,所以not a就是True)
print "hello"
这⾥就能够输出结果hello
(2) 判断元素是否在列表或者字典中,if a not in b,a是元素,b是列表或字典,这句话的意思是如果a不在列表b中,那么就执⾏冒号后⾯的语句,⽐如:
a = 5
b = [1, 2, 3]
if a not in b:
print "hello"
这⾥也能够输出结果hello
not x 意思相当于 if x is false, then True, else False
代码中经常会有变量是否为None的判断,有三种主要的写法:
第⼀种是`if x is None`;
第⼆种是 `if not x:`;
第三种是`if not x is None`(这句这样理解更清晰`if not (x is None)`) 。
如果你觉得这样写没啥区别,那么你可就要⼩⼼了,这⾥⾯有⼀个坑。先来看⼀下代码:
>>> x = 1
>>> not x
False
>>> x = [1]
>>> not x
False
>>> x = 0
>>> not x
True
>>> x = [0]        # You don't want to fall in this one.
>>> not x
False
在python中 None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False ,即:
not None == not False == not '' == not 0 == not [] == not {} == not ()
因此在使⽤列表的时候,如果你想区分x==[]和x==None两种情况的话, 此时`if not x:`将会出现问题:
>>> 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 None`和`if not x is None`写法,很明显前者更清晰,⽽后者有可能使读者误解为`if (not x) is None`,因此推荐前者,同时这也是⾕歌推荐的风格
结论:
`if x is not None`是最好的写法,清晰,不会出现错误,以后坚持使⽤这种写法。
使⽤if not x这种写法的前提是:必须清楚x等于None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才⾏。
================================================================
foo is None 和 foo == None的区别
问题 链接
if foo is None: pass
if foo == None: pass
如果⽐较相同的对象实例,is总是返回True ⽽ == 最终取决于 "eq()"
>>> class foo(object):
def __eq__(self, other):
return True
>>> f = foo()
>>> f == None
True
html从基础到精通
>>> f is None
False
>>> list1 = [1, 2, 3]
>>> list2 = [1, 2, 3]
>>> list1==list2
True
>>> list1 is list2mysql菜鸟教程字符串型
False
另外
(ob1 is ob2) 等价于 (id(ob1) == id(ob2))
python 中del 的⽤法
python中的del⽤法⽐较特殊,新⼿学习往往产⽣误解,弄清del的⽤法,可以帮助深⼊理解python的内存⽅⾯的问题. python的del不同于C的free和C++的delete. 由于pyth ...
python中argparse模块⽤法实例详解
python中argparse模块⽤法实例详解 这篇⽂章主要介绍了python中argparse模块⽤法,以实例形式较为详细的分析了argparse模块解析命令⾏参数的使⽤技巧,需要的朋友可以参考下 ...
【313】python 中 print 函数⽤法总结
不给cookie设置过期时间参考:python 中 print 函数⽤法总结 参考:Python print() 函数(菜鸟教程) 参考:Python 3 print 函数⽤法总结 ⽬录: 字符串和数值类型 变量 格式化输出 p ...
python中MySQLdb模块⽤法实例
篇⽂章主要介绍了python中MySQLdb模块⽤法,以实例形式详细讲述了MySQLdb模块针对MySQL数据库的各种常见操作⽅法,⾮常具有实⽤价值,需要的朋友可以参考下 本⽂实例讲述了python中 ...
python中hashlib模块⽤法⽰例
python中hashlib模块⽤法⽰例 我们以前介绍过⼀篇Python加密的⽂章:Python 加密的实例详解.今天我们看看python中hashlib模块⽤法⽰例,具体如下. hashlib ha ...
Python Deque 模块使⽤详解,python中yield的⽤法详解
Python中super的⽤法【转载】
Python中super的⽤法[转载] 转载dxk_093812 最后发布于2019-02-17 20:12:18 阅读数 1143  收藏 展开 转载⾃ Python⾯向对象中super⽤法与MRO ...
Python中With的⽤法如何定义变量绑定
在看Dive Into Python中有关描述⽂件读写那章节的时候,看到了有关with的⽤法,查阅下相关资料,记录下来,以备后⽤. 官⽅的reference上有关with statement是这样说的 ...
Python中AND-OR的⽤法
学习Python中的lambda函数的时候,才发现原来Python中的AND和OR还可以有⼀些别的⽤法.Python中的布尔逻辑计算的结果并⾮返回布尔值,⽽是返回它们相互之间的某⼀个.⽂章的部分例⼦来 ...
python中的有趣⽤法
本⽂给除了python中⼏个有趣的⽤法,可以给我们不⼀样的启发 1: Python中模拟使⽤C++ 中的  cout << import sys  class ostream: def  ...
随机推荐
mysql循环操作
#如果存在jyf_test存储过程则删掉 DROP PROCEDURE IF EXISTS jyf_test; DELIMITER // #创建存储过程 CREATE PROCEDURE jyf_te ...
使⽤JVMTI创建调试和监控代理
Java 虚拟机⼯具接⼝(JVMTI)提供了⼀个编程接⼝,允许你(程序员)创建software agent 来监视和控制你的Java应⽤. JVMTI 代替了原来的Java Virtual Machi ...
C&num;类⽅法声明where的⽤法
where ⼦句⽤于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量. 1.接⼝约束. 例如,可以声明⼀个泛型
类 MyGenericClass,这样,类型参数 T 就可以实现 ICompa ...
Spark集搭建_Standalone
2017年3⽉1⽇, 星期三 Spark集搭建_Standalone Driver:    node1    Worker:  node2    Worker:  node3 1.下载安装 下载地址 ...
mui底部选项卡切换实现
MUI提供了两种webview和div模式,来实现底部选项卡切换 效果相同,div是在同⼀个页⾯实现所有切换块的页⾯,根据id导航,⽽webview是由多个页⾯组成,形成页⾯之间的来回跳转
git代码同步服务器代码需要注意的问题
魔⿁藏在细节之中,git代码同步服务器代码需要注意的问题 1. 全⽂件夹覆盖  git pull 当前⽂件夹 2. 覆盖前做代码备份  mv origin
origin_20190404_bak
CSS| 框模型-輪廓excel按成绩高低排名次
轮廓(outline)是绘制于元素周围的⼀条线,位于边框边缘的外围,可起到突出元素的作⽤.CSS outline 属性规定元素轮廓的样式.颜⾊和宽度.相關屬性 outline-color 属性 ou ...
Linux内核RPC请求过程
这篇⽂章讲讲server端RPC报⽂的处理流程.server端RPC报⽂的处理函数是svc_process,这个函数位于net/sunrpc/svc.c中.这个函数须要⼀个svc_rqst结构的指针作 ...
SSH 证书登录(实例详解)
SSH 证书登录(实例详解) 客户端通过私钥登录 ssh 服务器 CentOS 7 SSH 使⽤证书登录 使⽤私钥 ssh 登陆 CentOS
N-grams模型、停顿词(stopwords)和标准化处理 - NLP学习(2)
在上⼀节的学习中,我们主要学习了如何将⼀串字符串分割成单独的字符,并且形成⼀个词汇集(vocabulary),之后我们将形成的词汇集合转换成计 ...

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。