python中not、and和or的优先级与详细用法介绍


Posted in Python onNovember 03, 2020

前言

(小白专用)本次所分享的是Python中的not、and、or的执行时的优先级,以及他们的具体用法。本文比较详细,不喜勿喷。

一、not、and、or的含义以及优先级

对象 返回结果 优先顺序
not x if x is false,then True,else False 1
x and y if x is false,then x,else y 2
x or y if x is false,then y,else x 3

含义:not是 “非” ;and是 “与” ;or是 “或” (可以用数学去理解)

1、not True = False 或者 not False = True (非真就是假,非假即真)

2、and是一假则假,两真为真,两假则假

3、or是一真即真,两假即假,两真则真

优先级是 not > and > or

代码如下(示例):

x=1 #将x赋值为1
y=0 #将y赋值为0
z=0 #将z赋值为0
print(x or y and not z)
'''
输出结果为
1
'''

小提示: 我们知道在编程语言中“非0即是True”,也就是“0为False,1为True”

  • 由于优先级是not>and>or,所以首先执行not z(也就是not 0),

即 not 0 = not False =True =1

下一步是轮到了and,那么 y and 1(已知y=0)即 0 and 1,也就是

False and True (假与真),我们刚刚谈过and,一假即假,故

y and 1 = 0 and 1 = False = 0

最后一步按优先级是轮到了or,即 x or 0(已知x=1),

即 1 or 0 =True or Flase =True = 1(or即“或”中,一真即真)

所以输出结果为 1

  • 总结: 代码运算过程为: (用数学符号表示优先级)

{ x or [ y and (not z) ] }

二、not、and、or的使用方法

1.not

if x is false,then True,else False

如果x为False则not x 为True,否则为False

(如果x是假的,则“非假”为真,否则x是真的,则非真为假)

在编程中是 布尔运算,即返回值是True 或者 False

代码如下(示例):

print(not 0,not 1,not True,not False)
'''
输出结果为:
True False False True
'''

2.and

and运算后的返回结果:

从左到右计算表达式,若所有的都为真,则返回最后一个值,若存在假,返回第一个值。

简单理解:

and的目的是找到并返回第一个False(假)或最后一个True(真) (从左往右找)(一假即假,两真即真)

代码如下(示例):

1、找到并返回第一个False(假)

print(1 and 2 and 0 and 4 and False)
'''
输出结果为:
0
'''

因为and是找到第一个False(假),我们知道在计算机中,

False即为0,所以输出结果是 0

2、找到并返回最后一个True(真)

print(1 and 2 and True and 4 and 6)
print(2 and 5 and True and 7 and True)
'''
输出结果为:
6
True
'''

因为 1,2,True,4,6 都不是0,我们知道 非零True,所以都是 真的,那么输出最后一个真值,所以输出结果为 6

因为 2,5,True,7,True 都不是0,都是真的,同理输出最后一个真值,所以输出结果为 True

3.or

or运算后的返回结果:

从左到右计算表达式,只要遇到真值就返回那个真值,如果表达式结束依旧没有遇到真值,就返回最后一个假值。

简单理解:

or的目的是找到并返回第一个True(真)或最后一个False(假) (从左往右找)(一真即真,两假即假)

代码如下(示例):

1、找到并返回第一个True(真)

print(0 or 0 or '' or 8 or 1 )
'''
输出结果为:
8
'''

小提示:

  • 在python中, [ ] 或者 ' ' 或者 ( ) 或者 None 都是空的意思,

    空也为假,即 空 = 假 = False

  • 由上面的代码可以看到,有两个真值分别是 8和1,但我们要找到作用范围内的第一个真值(True),即第一个为8,所
    以输出结果为 8

2、找到并返回最后一个False(假)

print([] or 0 or '' or None or () )
'''
输出结果为:
()
'''

小提示:

  • 在python中, [ ] 或者 ' ' 或者 ( ) 或者 None 都是空的意思,
    空也为假,即 空 = 假 = False
  • 此处可以知道,代码中都为假(False),所以要找到最后一个假(False)并返回这个值。最后一个是()所以输出结果为 ()

总结

  • 优先级是 not > and > or
  • not:如果x是假的,则“非假”为真,否则x是真的,则非真为假
  • and: 找到并返回第一个False(假)或最后一个True(真)
  • or: 找到并返回第一个True(真)或最后一个False(假)

到此这篇关于python中not、and和or的优先级与详细用法介绍的文章就介绍到这了,更多相关python中not、and和or优先级与用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
深度剖析使用python抓取网页正文的源码
Jun 11 Python
python实现从ftp服务器下载文件的方法
Apr 30 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
详解Django中间件执行顺序
Jul 16 Python
python中多个装饰器的执行顺序详解
Oct 08 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 Python
Python列表与元组的异同详解
Jul 02 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
Python matplotlib绘制饼状图功能示例
Sep 10 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
pandas to_excel 添加颜色操作
Jul 14 Python
Django DRF认证组件流程实现原理详解
Aug 17 Python
如何基于Python按行合并两个txt
Nov 03 #Python
Python txt文件如何转换成字典
Nov 03 #Python
Python headers请求头如何实现快速添加
Nov 03 #Python
python time()的实例用法
Nov 03 #Python
Python-openpyxl表格读取写入的案例详解
Nov 02 #Python
Python常用扩展插件使用教程解析
Nov 02 #Python
python实现三壶谜题的示例详解
Nov 02 #Python
You might like
php xml-rpc远程调用
2008/12/19 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
php动态添加url查询参数的方法
2015/04/14 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
python求众数问题实例
2014/09/26 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
经济学人订阅:The Economist
2018/07/19 全球购物
亲戚结婚的请假条
2014/02/11 职场文书
毕业生自荐信格式
2014/03/07 职场文书
2014年单位植树节活动方案
2014/03/23 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
浅谈Java父子类加载顺序
2021/08/04 Java/Android