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 相关文章推荐
Fabric 应用案例
Aug 28 Python
python利用rsa库做公钥解密的方法教程
Dec 10 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
在Python中使用gRPC的方法示例
Aug 08 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
Django实现基于类的分页功能
Oct 31 Python
python构建指数平滑预测模型示例
Nov 21 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
拿来就用!Python批量合并PDF的示例代码
Aug 10 Python
python基础之模块的导入
Oct 24 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 模拟get_headers函数的代码示例
2013/04/27 PHP
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
浅析PHP编程中10个最常见的错误
2014/08/08 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
9个比较实用的php代码片段
2016/03/15 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
JS实现百度搜索框
2021/02/25 Javascript
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
Python configparser模块常用方法解析
2020/05/22 Python
python实现三种随机请求头方式
2021/01/05 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
初一地理教学反思
2014/01/16 职场文书
小学敬老月活动方案
2014/02/11 职场文书
创先争优宣传标语
2014/10/08 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
上诉答辩状范文
2015/05/22 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
nginx+lua单机上万并发的实现
2021/05/31 Servers
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript