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使用Socket(Https)Post登录百度的实现代码
May 18 Python
python中实现定制类的特殊方法总结
Sep 28 Python
django接入新浪微博OAuth的方法
Jun 29 Python
Python基于回溯法子集树模板解决数字组合问题实例
Sep 02 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
django 将model转换为字典的方法示例
Oct 16 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
Python如何通过百度翻译API实现翻译功能
Apr 02 Python
解决pycharm安装第三方库失败的问题
May 09 Python
python如何变换环境
Jul 21 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数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
thinkphp分页实现效果
2016/10/13 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
js模仿jquery的写法示例代码
2013/06/16 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
javascript中闭包closure的深入讲解
2021/03/03 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
python类型强制转换long to int的代码
2013/02/10 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python字符串的拼接方法总结
2019/11/18 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
python实现磁盘日志清理的示例
2020/11/05 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
服务理念标语
2014/06/18 职场文书
拾金不昧表扬信
2015/01/16 职场文书
坎儿井导游词
2015/02/09 职场文书
致运动员加油稿
2015/07/21 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
python基础之文件操作
2021/10/24 Python