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 thread 并发且顺序运行示例
Apr 09 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 Python
python计算二维矩形IOU实例
Jan 18 Python
python实现QQ邮箱发送邮件
Mar 06 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
浅谈Python中的字符串
Jun 10 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
python语言time库和datetime库基本使用详解
Dec 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
javascript 面向对象思想 附源码
2009/07/07 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python实现把数字转换成中文
2015/06/29 Python
python实现三次样条插值
2018/12/17 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
EJB的几种类型
2012/08/15 面试题
初婚初育证明
2014/01/14 职场文书
个人查摆剖析材料
2014/02/04 职场文书
我爱我校演讲稿
2014/05/21 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书