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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python数据类型之间怎么转换技巧分享
Aug 20 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
Python concurrent.futures模块使用实例
Dec 24 Python
Python tkinter和exe打包的方法
Feb 05 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
关于python中导入文件到list的问题
Oct 31 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
Python实现双向链表
May 25 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中遍历stdclass object的实现代码
2011/06/09 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
js查找节点的方法小结
2015/01/13 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
浅析vue-router原理
2018/10/19 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
python3+PyQt5实现拖放功能
2018/04/24 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
外语系毕业生找工作的求职信
2013/11/28 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
学校通报表扬范文
2015/05/04 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
详解Vue router路由
2021/11/20 Vue.js
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android
基于Redission的分布式锁实战
2022/08/14 Redis