在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了  __ nonzero __ () 或 __ len __ () 方法且方法返回 0 或False,则其实例也被当作False,其他对象均为True。

# 逻辑运算符运行结果:不一定是bool类型

1. and
# 左右都成立才成立,有不成立的就不成立

res = 10 > 5 and 10 > 20
print(res)

Output:
False
res = 0 and 20 # and前为假,整个式子就可以确定为假了,and后就不需要执行(短路)
print(res)

 2. or

# 左右都不成立才不成立,有成立的就成立
res = 10 < 5 or 10 > 20
print(res) Output:
False
res = 10 or 20 # or前为真,整个式子就可以确定为真了,or后就不需要执行(短路)
print(res)

3. not

#成立则不成立,不成立则成立

print(not 10)
print(not 0) Output:
False
True

4. 包含两个及以上的逻辑运算符

  逻辑运算符 and / or 一旦不止一个,其运算规则的核心思想就是短路逻辑,我们就来了解一下短路思想:

  1 表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。

  2 表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。

  3 若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。

# # 了解:and 优先级高于 or

res = 5 and 0 or 20 and 30  #
print(res) Output:
30

PythonStudy——逻辑运算符 Logical Operators的更多相关文章

  1. Java基础-逻辑运算符Logic Operators

    Java基础-逻辑运算符Logic Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.逻辑运算符 逻辑运算符是对布尔值进行操作运算的,常见的有: 1>.逻 ...

  2. Logical Operators (Transact-SQL)

    https://docs.microsoft.com/en-us/sql/t-sql/language-elements/logical-operators-transact-sql Logical ...

  3. JavaScript Comparison and Logical Operators

    Ref:http://www.w3schools.com/js/js_comparisons.asp var r = 1; var result = r || 2; console.log(resul ...

  4. awk 手册--【转载】

    1. 前言 有关本手册 : 这是一本awk学习指引,  其重点着重于 : l         awk 适于解决哪些问题 ? l         awk 常见的解题模式为何 ? 为使读者快速掌握awk解 ...

  5. awk中文手册

    1. 前言 有关本手册 : 这是一本awk学习指引, 其重点着重于 : l        awk 适于解决哪些问题 ? l        awk 常见的解题模式为何 ? 为使读者快速掌握awk解题的模 ...

  6. 见过的最好AWK手册

    原文: http://linuxfire.com.cn/~lily/awk.html 简体中文版由bones7456 (http://li2z.cn)整理. 原文:应该是 http://phi.sin ...

  7. 【译】 AWK教程指南 附录B-Actions

    Actions 是由下列指令(statement)所组成: 表达式 ( 函数调用,赋值...) print 表达式列表 printf( 格式化字符串, 表达式列表) if( 表达式 ) 语句 [els ...

  8. 【译】 AWK教程指南

    前面的话: 这几天写了一个程序,在同一个目录里生成了很多文件,需要统计其中部分文件的总大小,发现经常用到的ls.du等命令都无济于事,我甚至都想到了最笨的方法,写一个脚本:mkdir一个新目录,把要统 ...

  9. js基础——运算符

    爱创课堂前端培训--js基础 运算符一.运算符 运算符(Operators,也翻译为操作符),是发起运算的最简单形式.分类:(运算符的分类仁者见智,本课程进行一下分类.)数学运算符(Arithmeti ...

随机推荐

  1. .Net中json序列化与反序列化

    NuGet中下载Newtonsoft.Json插件. public class JsonHelper<T>{ public static string ModelToJsonString( ...

  2. 【NET Core】事务TransactionScope

    .NET FrameWork时期: TransactionScope是FCL System.Transactions命名空间下的分布式事务组件,它默认为本地事务,当系统有需要时可以自动提升为分布式事务 ...

  3. TexStudio + TexLive 修改字体大小

    \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LARGE \huge \Huge 将上述命令放在文本之前即可

  4. linux存储管理之交换分区

    交换分区管理 Swap ====================================================================================作用: ...

  5. python入门-基础语法

    一.变量 定义字符串要加单引号‘’ 变量命名规范: 变量名只能是字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 变量名不能用关键字 变量名不要用中文 变量名不要太长,区分大小写 面就用单引 ...

  6. java线程自带队列的使用以及线程阻塞

    java线程,设置队列的大小实现队列阻塞 public class QueueThreads { private static int nThreads = 4;//Runtime.getRuntim ...

  7. 学习:MQTT协议及原理

    1 MQTT协议实现方式: 实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish).代理(Broker)(服务器).订阅者(Subscribe) ...

  8. PHP_CodeSniffer 安装和phpstorm配置

    安装 1.mac安装 sudo pear install PHP_CodeSniffer phpstorm配置 1. 点击菜单:File->Settings 或 按快捷键 Ctrl+Alt+S ...

  9. [Leetcode 18]四数之和 4 Sum

    [题目] Given an array nums of n integers and an integer target, are there elements a, b, c, and d in n ...

  10. SVG路径PATH

    SVG路径PATH 在使用之前建议下个PS或者FLASH玩玩里面的钢笔工具(FLASH里的钢笔工具比PS里的好用) PATH用到的指令: M----(X Y):移动到 Z----(none):关闭路径 ...