python3【基础】-and和or的短路逻辑
1. 表达式只有一个逻辑运算符
python中哪些对象会被当成False,哪些又是True呢?
- 基本数据类型中的None、任何数值类型中的0、空字符串"",空列表[],空元组()和空字典{}。
- 自定义类型,如果实现了__nozero__() 或 __len__() 方法返回0或False,则其实例也被当作False
- 除了上述两种,其它的都会被当作True
最简单的逻辑运算:
True and True ==> True True or True ==> True
True and False ==> False True or False ==> True
False and True ==> False False or True ==> True
False and False ==> False False or False ==> False
当逻辑运算表达式中含有False对象时,逻辑运算后会返回False类型本身,例如:
>>> a = [0, 1, '' ,3]
>>> a[0] and a[1]
0
>>> a = [0, 1, '' ,3]
>>> a[2] and a[1]
''
两个同时为False,返回左边的值。
2. 表达式中包含两个即两个以上的逻辑运算符
逻辑运算符and或or一旦不止一个,其运算规则的核心思想就是短路逻辑。
- 表达式从左至右计算,若or的左侧逻辑值为True,则短路or后所有的表达式(不管是and还是or,直接输出or左侧表达式)。
- 表达式从左至右计算,若and的左侧逻辑值为False,则短路其后所有and表达式,直到有or出现,输出and左侧表达式到or的左侧,参与接下来的逻辑运算。
- 若or的左侧为False,或者and的左侧为True,则不能使用短路逻辑。
具体内容可见:https://www.cnblogs.com/an9wer/p/5475551.html分析
python3【基础】-and和or的短路逻辑的更多相关文章
- 028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑“或”运算符
028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑"或"运算符 本文知识点:Java中的逻辑"或"运算符 逻辑& ...
- 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符
027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...
- Python中三目计算符的正确用法及短路逻辑
今天在看别人代码时看到这样一种写法, 感觉是个挺容易踩到的坑, 搞清楚后写出来备忘. 短路逻辑 Python中进行逻辑运算的时候, 默认采用的是一种叫做短路逻辑的运算规则. 名字是很形象的, 下面直接 ...
- JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前
1.短路逻辑 逻辑运算中,如果前一个条件已经可以得出最终结论,则后续所有条件不再执行!这里的逻辑运算指的是逻辑与和逻辑或. 我们要理解逻辑与是两个条件都为真的时候,才为真,如果第一个就是假的,那么后面 ...
- python中 and 和 or 运算的核心思想 ——— 短路逻辑
python中 and 和 or 运算的核心思想 --- 短路逻辑 1. 包含一个逻辑运算符 首先从基本的概念着手,python中哪些对象会被当成 False 呢?而哪些又是 True 呢? 在Pyt ...
- python3基础视频教程
随着目前Python行业的薪资水平越来越高,很多人想加入该行业拿高薪.有没有想通过视频教程入门的同学们?这份Python教程全集等你来学习啦! python3基础视频教程:http://pan.bai ...
- Python3基础-特别函数(map filter partial reduces sorted)实例学习
1. 装饰器 关于Python装饰器的讲解,网上一搜有很多资料,有些资料讲的很详细.因此,我不再详述,我会给出一些连接,帮助理解. 探究functools模块wraps装饰器的用途 案例1 impor ...
- Python中 and or 运算顺序详解 --- 短路逻辑
核心思想 表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 . 表达式从左至右运算,若 and 的左侧逻 ...
- 2. Python3 基础入门
Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...
随机推荐
- js实现全选、全不选、反选的功能
<!DOCTYPE html> <html> <head> <META charset="utf-8"/> <link rel ...
- Machine Learning In Action
The mind-road of "Machine Learning In Action". Read though the book totally by English!!
- 洛谷P1501 [国家集训队]Tree II(LCT)
题目描述 一棵n个点的树,每个点的初始权值为1.对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c: - u1 v1 u2 v2:将树中原有的 ...
- C# 数组集合分页 Skip Take
var input=new input(); var personList= new List<Person>(); //一个查询集合 var Total = personList.Cou ...
- 网站sql注入漏洞修复方案之metinfo 6.1.0系列
近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危的sql注入漏洞,攻击者可以利用该漏洞对网站的代码进行sql注入攻击,伪造恶意的sql非法语句,对网站的数 ...
- R语言学习笔记(二十一五):如何如何提升R语言运算的性能以及速度
在R中获得快速运行代码的方法 使用向量化运算 R语言的并行计算可以用parallel和foreach包 加快R运行速度还可以使用cmpfun()函数即字节码编译器 再者就是在R中调用C或C++ 同时还 ...
- 自己第一次使用ANTLR遇到的问题
觉得既然是第一次尝试ANTLR嘛,那就来个简单点的,parse Windows 的 hosts 文件吧,结果...... 先上一段 grammar: grammar hosts; hostfile: ...
- 20155316 实验三《敏捷开发与XP实践》实验报告
实验1 实验内容 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能.提交截图,加上自己学号水印. pu ...
- 20155330 2016-2017-2《Java程序设计》课程总结
20155330 2016-2017-2<Java程序设计>课程总结 目录 每周作业链接汇总 实验报告链接汇总 代码托管 课堂项目实践 课程收获与不足 问卷调查 给出你的总结中涉及到的链接 ...
- ubuntu下刻录优盘的命令
fdisk -l 找到优盘为/dev/sdb4 sudo dd if=/home/alex/Desktop/kali-linux-2016.1-amd64.iso of=/dev/sdb4