iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中not的用法
  • 692
分享到

python中not的用法

python 2023-01-31 01:01:58 692人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

在python中not是逻辑判断词,用于布尔型True和False,not True为False,not False为True,以下是几个常用的not的用法: (1) not与逻辑判断句if连用,代表not后面的表达式为False的时

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
  1. >>> x = 1  
  2. >>> not x  
  3. False  
  4. >>> x = [1]  
  5. >>> not x  
  6. False  
  7. >>> x = 0  
  8. >>> not x  
  9. True  
  10. >>> x = [0]         # You don't want to fall in this one.  
  11. >>> not x  
  12. False  
Python中 None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False ,即:
[python] view plaincopy
  1. not None == not False == not '' == not 0 == not [] == not {} == not ()  

因此在使用列表的时候,如果你想区分x==[]和x==None两种情况的话, 此时`if not x:`将会出现问题:
[python] view plaincopy
  1. >>> x = []  
  2. >>> y = None  
  3. >>>   
  4. >>> x is None  
  5. False  
  6. >>> y is None  
  7. True  
  8. >>>   
  9. >>>   
  10. >>> not x  
  11. True  
  12. >>> not y  
  13. True  
  14. >>>   
  15. >>>   
  16. >>> not x is None  
  17. >>> True  
  18. >>> not y is None  
  19. False  
  20. >>>   
也许你是想判断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 True

>>> f = foo()
>>> f == None
True
>>> f is None
False

>>> list1 = [1, 2, 3]
>>> list2 = [1, 2, 3]
>>> list1==list2
True
>>> list1 is list2
False

另外

(ob1 is ob2) 等价于 (id(ob1) == id(ob2))

--结束END--

本文标题: python中not的用法

本文链接: https://www.lsjlt.com/news/185084.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中not的用法
    在python中not是逻辑判断词,用于布尔型True和False,not True为False,not False为True,以下是几个常用的not的用法: (1) not与逻辑判断句if连用,代表not后面的表达式为False的时...
    99+
    2023-01-31
    python
  • python中if的基础用法(if else和if not)
    目录前言1.if … else …2. if … elif … else…3.if not …4....
    99+
    2024-04-02
  • oracle中not in用法
    not in 运算符用于检查一个值是否不在另一个组或子查询的结果集中。它以以下方式使用:指定要检查的值。将该值与子查询或值列表进行比较。返回该值不在比较组中的所有行。 Oracle 中...
    99+
    2024-05-07
    oracle
  • css中的:not()选择器和jQuery中的.not()方法怎么用
    这篇文章主要介绍“css中的:not()选择器和jQuery中的.not()方法怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css中的:not()选择器和j...
    99+
    2024-04-02
  • python not关键字实例用法
    1、not关键词可以反转一个布尔值。 >>> not True False >>> >>> not 1 > 0 Fal...
    99+
    2024-04-02
  • sql中not null的用法是什么
    在 SQL 中,NOT NULL 是用于定义列(字段)不允许为空(NULL)的约束。通过在创建表时或修改表结构时使用 NOT NUL...
    99+
    2024-04-02
  • oracle中not exists的用法是什么
    在Oracle中,NOT EXISTS是一个条件运算符,用于检查子查询中是否存在记录。如果子查询返回的结果集为空,则返回True,否...
    99+
    2023-08-22
    oracle
  • MySQL中not exists的用法是什么
    在MySQL中,"NOT EXISTS"是一种用于判断某个条件是否不存在的运算符。它的使用语法如下:```SELECT co...
    99+
    2023-09-26
    MySQL
  • python中使用if not x 语句
    在Python中,None、空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False。除此之外的其它对象都会被转化成True。#!/usr/bin/python # -*- coding: UTF-8 -*- #...
    99+
    2023-01-31
    语句 python
  • css中:not()选择器的使用方法
    这篇文章主要介绍css中:not()选择器的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css的基本语法是什么css的基本语法是:1、css规则由选择器和一条或多条声明两个部分构成;2、选择器通常是需要改变...
    99+
    2023-06-14
  • MySQL中IN和NOT IN的使用方法
    这篇文章给大家分享的是有关MySQL中IN和NOT IN的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.IN与NOT IN的语法格式MySQL 中的 IN 运算符用来...
    99+
    2024-04-02
  • sql中not的使用方法是什么
    在 SQL 中,NOT 是一个逻辑运算符,用于反转条件的结果。它可以与其他条件一起使用,例如 NOT IN、NOT LIKE、NOT...
    99+
    2024-04-09
    sql
  • oracle中的exists 和not exists 用法详解
    在Oracle中,EXISTS和NOT EXISTS是用来检查子查询是否返回任何行的条件运算符。- EXISTS:当子查询返回至少一...
    99+
    2023-09-12
    Oracle
  • 使用SQL中的EXISTS和NOT EXISTS的语法
    SQL中的exists和not exists的用法,需要具体的代码示例 在SQL中,exists和not exists是一对常用的谓词(predicate),用于判断一个子查询(sub...
    99+
    2024-02-22
    sql用法
  • python中not运算符怎么用
    小编给大家分享一下python中not运算符怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!说明not逻辑非,可以对符号右侧的值进行非运算。对于布尔值,非运算...
    99+
    2023-06-20
  • /bin/sh: python: not found 的解决方法
    文章目录 写在前面一、问题描述二、解决方法 写在前面 写文时间:2022.12.03。 测试环境:Ubuntu20.04.5 一、问题描述 在运行一些 python 程序的时候,总是会报如...
    99+
    2023-09-13
    python
  • python中如何使用not运算符
    小编给大家分享一下python中如何使用not运算符,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!说明not逻辑非,可以对符号右侧的值进行非运算。对于布尔值,非运...
    99+
    2023-06-20
  • python中format的用法
    小编给大家分享一下python中format的用法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python中format的使用方法:【format():】把传统...
    99+
    2023-06-08
  • Python中shape的用法
    shape函数的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度,相当于行数。它的输入参数可以是一个整数表示维度,也可以是一个矩阵。shape函数返回的是一个元组,表示数组(矩阵)的维度,例子如下: 1. 数组(矩阵)...
    99+
    2023-10-22
    python numpy Powered by 金山文档
  • python中join的用法
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作