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给文本创立向量空间模型的教程
Apr 23 Python
按日期打印Python的Tornado框架中的日志的方法
May 02 Python
在Python中操作字符串之replace()方法的使用
May 19 Python
自己使用总结Python程序代码片段
Jun 02 Python
python 按不同维度求和,最值,均值的实例
Jun 28 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
Python实现Event回调机制的方法
Feb 13 Python
django fernet fields字段加密实践详解
Aug 12 Python
Django中间件拦截未登录url实例详解
Sep 03 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 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版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
对python 命令的-u参数详解
2018/12/03 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
详解python:time模块用法
2019/03/25 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
优秀大学生职业生涯规划书
2014/02/27 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
大学生逃课检讨书
2015/05/04 职场文书
新年晚会开场白
2015/05/29 职场文书
同乡会致辞
2015/07/30 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis