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面相对象编程中对象的属性与类的方法
Jan 19 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
Python实现查看系统启动项功能示例
May 10 Python
django admin 后台实现三级联动的示例代码
Jun 22 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
Python制作exe文件简单流程
Jan 24 Python
Django CSRF跨站请求伪造防护过程解析
Jul 31 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Python 微信公众号文章爬取的示例代码
Nov 30 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
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
php中in_array函数用法分析
2014/11/15 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
Yii2中datetime类的使用
2016/12/17 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
结构和类有什么异同
2012/07/16 面试题
销售行业个人求职自荐信
2013/09/25 职场文书
企业治理工作自我评价
2013/09/26 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
招股说明书范本
2014/05/06 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
党员个人剖析材料
2014/09/30 职场文书
关于长城的导游词
2015/01/30 职场文书
暂停营业通知
2015/04/25 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android