Short Circuiting

Operator Checks if: Evaluates from left to right up to: Example
AND All values are true The first false value False and 1 / 0 evaluates to False
OR At least one value is true The first true value True or 1 / 0 evaluates to True

Short-circuiting happens when the operator reaches an operand that allows them to make a conclusion about the expression. For example, and will short-circuit as soon as it reaches the first false value because it then knows that not all the values are true.

If and and or do not short-circuit, they just return the last value; another way to remember this is that and and or always return the last thing they evaluate, whether they short circuit or not. Keep in mind that and and or don't always return booleans when using values other than True and False.

举例

---------------------------------------------------------------------
The Truth Will Prevail > Suite 2 > Case 2
(cases remaining: 2) What would Python display? If you get stuck, try it out in the Python
interpreter! >>> print(3) or ""

分析

  1. short-circuit operator:之所以说or是“短路操作符”,是因为当第一个操作数为True的时候,or便会得出整体表达式为True的结论,这样就不会执行下一个操作数。(and同理)
  2. 整体的返回值:就如上面所说,:andor总是会返回最后一个计算的值,无论他们是否短路。短路时最后一个返回值就是第一个操作数,不短路时就会返回计算的第二个操作数的值。

这样当表达式print(3) or ""执行到第一个操作数print(3)时,因为函数print()输出3后,返回的是NoneNone 在逻辑上被视为 False,因此会继续判断第二个操作数。这时候output只有一个3。计算第二个操作数""即为''空字符串,这时会输出''

这样输出结果为:

>>> print(3) or ""
3
''

Python:Short Circuiting -- “OR”的更多相关文章

  1. 转!!Java 基础面试题的剖析: short s1=1;s1 = s1 +1 报错? s1+=1 呢

    short s1=1;s1 = s1 +1会报错吗?    package common; public class ShortTypeTest { /* * @param args */ publi ...

  2. 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?

    package common; public class ShortTypeTest { /* * @param args */ public static void main(String[] ar ...

  3. Python:使用threading模块实现多线程编程

    转:http://blog.csdn.net/bravezhe/article/details/8585437 Python:使用threading模块实现多线程编程一[综述] Python这门解释性 ...

  4. Java基础知识强化01:short s = 1; s = s + 1;与short s = 1; s += 1;

    1.short s = 1; s = s + 1;有没有问题?如果有怎么解决?    short s = 1; s += 1;有没有问题?如果有怎么解决? 2.理解: short s=1;  s=s+ ...

  5. Python:渗透测试开源项目

    Python:渗透测试开源项目[源码值得精读] sql注入工具:sqlmap DNS安全监测:DNSRecon 暴力破解测试工具:patator XSS漏洞利用工具:XSSer Web服务器压力测试工 ...

  6. Python:开发Sublime插件,方便PHP开发

    Python:开发Sublime插件,方便PHP开发 背景 最近在学习PHP,开发环境选择了Sublime2,开发过程发现执行PHP程序非常不方便,需要自己在浏览器中输入路径以进行调试,这点不如Dre ...

  7. Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)

    Python:高级主题之(属性取值和赋值过程.属性描述符.装饰器) 背景 学习了Javascript才知道原来属性的取值和赋值操作访问的“位置”可能不同.还有词法作用域这个东西,这也是我学习任何一门语 ...

  8. Python:Python学习总结

    Python:Python学习总结 背景 PHP的$和->让人输入的手疼(PHP确实非常简洁和强大,适合WEB编程),Ruby的#.@.@@也好不到哪里(OO人员最该学习的一门语言). Pyth ...

  9. 产品经理学Python:参数传递方式

    这是关于Python的第5篇文章,主要介绍下参数传递方式和如何设计自己的函数. (一) 本篇主要介绍2种参数传递方式. 位置参数 调用函数时,根据函数定义的参数位置来传递参数. def right_t ...

  10. Python:Anaconda安装虚拟环境到指定路径

    1 曾经的困扰 有段时间,想使用基于不同python版本的anaconda,就直接从官网下载了两个不同的anaconda版本进行安装.刚开始的时候,还觉得也没啥问题.用了一小段时间,在安装其他的第三方 ...

随机推荐

  1. 记录--用Echarts打造自己的天气预报!

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 最近刚刚学习了Echarts的使用,于是想做一个小案例来巩固一下.项目效果如下图所示: 话不多说,开始进入实战. 创建项目 这里我们 ...

  2. 使用maven命令 创建基于Scala的flink项目

    windows下 mvn archetype:generate ^ -DarchetypeGroupId=org.apache.flink ^ -DarchetypeArtifactId=flink- ...

  3. 基于ARM联合ZYNQ的设计小结

    基于ARM联合ZYNQ的设计小结 1.硬件设计 硬件设计就是使用PS的自带硬核,外接其他可以连接AXI的IP核,构成一个自定义的硬件平台.如果简单理解,可以把这些操作统称为底层.这部分的设计还是比较方 ...

  4. KingbaseES 垃圾回收原理以及如何预防膨胀更新

    背景 KingbaseESV8R6支持snapshot too old 那么实际工作中,经常看到表又膨胀了,那么我们讨论一下导致对象膨胀的常见原因有哪些呢? 未开启autovacuum,对于未开启au ...

  5. 性能测试思想(What is performance testing?)

    1.什么是性能测试 什么是软件性能? 定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能是展示出来的及时性. 比如:一个登录功能他能实现登录操作,但是登录 ...

  6. #二分图匹配#UVA1194 Machine Schedule

    题目 有两台机器 \(A,B\) 分别有 \(n,m\) 种模式. 现在有 \(k\) 个任务.对于每个任务 \(i\) ,给定两个整数 \(a_i\) 和 \(b_i\)​, 表示如果该任务在 \( ...

  7. #计数,记忆化搜索#C 连边方案

    分析 设\(dp[i][j][k][l]\)表示处理到\([i-l+1,i]\)的连边,二进制状态(奇点还是偶点)为\(k\)的方案数, 最后一维是为了避免算重,那么如果第\(i-l+1\)位是偶点可 ...

  8. Docker学习路线10:容器安全

    容器安全是实施和管理像Docker这样的容器技术的关键方面.它包括一组实践.工具和技术,旨在保护容器化应用程序及其运行的基础架构.在本节中,我们将讨论一些关键的容器安全考虑因素.最佳实践和建议. 容器 ...

  9. Kubernetes(K8S)命令指南

    本文提供了一份全面的Kubernetes(K8S)命令指南,旨在帮助用户掌握和运用K8S的各种命令. 关注[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互联网 ...

  10. 携手HMS Core统一扫码服务, 兴业证券优理宝App提升用户扫码体验

    兴业证券优理宝App联合华为HMS Core,集成HMS Core统一扫码服务,在提升扫码成功率的同时,还支持C端用户用手机端APP扫描手表端二维码,实现行情在手机与手表间跨终端流转,行情信息,抬腕可 ...