python中的not具体使用及意思(关键词:Python/not)
name=”
while not name:
name=raw_input(u'请输入姓名:')
print name
python中的not具体表示是什么:
在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)
) 。
如果你觉得这样写没啥区别,那么你可就要小心了,这里面有一个坑。先来看一下代码:
[python] view plaincopy
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 ,即:
[python] view plaincopy
not None == not False == not ” == not 0 == not [] == not {} == not ()
因此在使用列表的时候,如果你想区分x==[]和x==None两种情况的话, 此时if not x:
将会出现问题:
[python] view plaincopy
x = []
y = Nonex is None
False
y is None
Truenot x
True
not y
Truenot 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, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。
================================================================
不过这并不适用于变量是函数的情况,以下转载自:https://github.com/wklken/stackoverflow-py-top-qa/blob/master/contents/qa-control-flow.md
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 Truef = foo()
f == None
True
f is None
Falselist1 = [1, 2, 3]
list2 = [1, 2, 3]
list1==list2
True
list1 is list2
False
另外
(ob1 is ob2) 等价于 (id(ob1) == id(ob2))
#
补充,2013.10.09
转自http://zhidao.baidu.com/question/514056244.html
python中的not具体表示是什么,举个例子说一下,衷心的感谢
在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
参考文献:
1. python中的not具体使用及意思。
python中的not具体使用及意思(关键词:Python/not)相关推荐
- Python中的图像处理(第六章)Python图像量化及采样处理(2)
Python中的图像处理(第六章)Python图像量化及采样处理(2) 前言 一. Python准备 二. Python仿真 三. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断上 ...
- Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数
[小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中通过索引名称提取数据 loc()函数 Python中通过 ...
- Python中的图像处理(第十一章)Python图像锐化及边缘检测(1)
Python中的图像处理(第十一章)Python图像锐化及边缘检测(1) 前言 一. Python准备 二. Python仿真 三. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断 ...
- python中filepath路径怎么写_详解Python中的路径问题
1. 绝对路径引入 Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止.下面命令可以查看当前的搜索路径: import sys print(sys.path) sys.pa ...
- python下列合法的变量名是什么,python中的合法变量名有什么规则-Python教程
python中非法变量名的规定有:一.能够由字母.数字.下划线组成,同时,不克不及以数字扫尾:二.不克不及是python要害字,但能够蕴含要害字:三.不克不及蕴含空格.例如:[a1c_x2z]. Py ...
- python中导入模块使用哪个关键字_关于python导入模块的关键字介绍
关于python导入模块的关键字介绍 发布时间:2020-04-17 10:13:26 来源:亿速云 阅读:101 作者:小新 今天小编给大家分享的是关于python导入模块的关键字介绍,很多人都不太 ...
- python中列表和集合_15个例子掌握Python列表,集合和元组
Python中的一切都是对象.每个对象都有自己的数据属性和与之关联的方法.为了有效和恰当地使用一个对象,我们应该知道如何与它们交互. 列表.元组和集合是三种重要的对象类型.它们的共同点是它们都被用作数 ...
- 在Python中查找和替换文本,玩转Python正则
最简单的查找替换 在Python中查找和替换非常简单,如果当前对象是一个字符串str时,你可以使用该类型提供的find() 或者index() 方法查找指定的字符,如果能找到则会返回字符第一次出现的索 ...
- 在python中定义类时、运算符重载_自定义 Python 类中的运算符和函数重载(上)...
如果你对 Python 中的str对象使用过 + 或 * 运算符,你一定注意到了它的操作与 int 或 float 类型的区别: 你可能想知道同一内置运算符或函数如何对不同类对象进行不同操作的.这分别 ...
- python中继承是什么意思_如何理解Python中的继承?python入门
如何理解Python中的继承?如今,python编程语言深受企业和个人的喜爱.python开发工程师是近年来互联网行业非常热门的职业岗位之一.学习python的人除了零基础的,还有一部分是在职运维.在 ...
最新文章
- Spring Boot 2.0 利用 Spring Security 实现简单的OAuth2.0认证方式1
- 在Linux上安装Python 3
- java aab全排列_编译原理习题课答案.ppt
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
- 将jar文件转换成exe可执行文件[转]
- dell服务器安装系统注意之二.(2003/xp 的sn)
- long mode 分页_x86 系列 CPU 内存寻址模式总结
- vbs整人代码蓝屏_求大量VBS整人代码.
- Java 定时任务@Scheduled使用
- python爬取网易云评论_Python - 网易云热门评论爬取
- 常见网站挂马方式 网站挂马可利用漏洞 网站加密挂马
- qq游戏坦大战服务器维护中,高手教你如何解决QQ游戏问题
- ionic入门教程第十一课-简要说明ion-list、ion-item完成列表页ion-infinite-scroll上拉加载ion-refresher下拉刷新
- 怎么快速修改gif尺寸?仅需三步教你改gif大小
- 《暗黑》同名小说——再也回不去(连载1)
- java中求两个数的最小公倍数,最大公约数的简便方法
- Bootm启动流程分析
- 原生js由html创建节点,[js高手之路]HTML标签解释成DOM节点的实现方法
- 万卷书 - 21世纪的投资 21st Century Investing
- Java实现第八届蓝桥杯拉马车