一、逻辑运算符的种类及优先级

▷逻辑运算符包括 not and or 

▷他们的优先级是 () > not > and > or

二、普通逻辑运算

▷A and B --->  A和B都位真的时候结果为真,有一个为假结果即为假

▷A or    B --->  A和B有一个为真结果即为真

A和B可以为 bool值(True、False),可以为比较运算(3>1 、4<3 、1 !=1 )

三、两边为数字的逻辑运算

大家都知道,0可以用来表示bool值 False,而除了0之外的所有数字都可以表示bool值True,

所以说,逻辑运算两边也可以用数字表示

▷ or 运算

从上面的例子可以看出  A or B  ,当A的值为Ture的时候,返回的是A的值,当A的值为False的时候,返回的为B的值(A、B为数字类型就返回数字类型,为布尔类型就返回布尔类型)

A、B为比较运算的时候同样适用上面的那个结论

▷ and 运算

与or运算刚好相反,当运算符为and的时候,A and B ---> A若为真,则结果为B,A若为假则结果为A

四、总结

A  or  B    A为真,结果为A。   A为假,结果为B

A and B   A为真,结果为B,   A为假,结果为A  

PS:

▷ A或者B为数字的时候,返回的就是数字,A或B为布尔类型或者比较运算的时候,返回的值为True或者False

▷ or与and的结果恰好相反,记一种即可

其实往深层次想一下,之所以会有这样的结果,跟计算机运算逻辑有关

我们都知道,A and B ,两边均为真的时候结果才为真,而如果计算机检测到A为False的时候,那么不管B为何止何值,结果均为False,所以计算机只需要返回A的值即可

它甚至不会去读B的值,所以结果不可能会是B,为了验证这个猜测,我们给B赋一个毫无逻辑性的东西试一下

大家可以看到,计算机检测到 and 前面为0(False)的时候,它就不会去检测后面的值了,所以我们输入了一串乱七八糟毫无逻辑的字符串它还是不会报错,直接返回0

而如果计算机检测到A为True的时候,那么它才会去检测B的值,B为真,结果为真,B为假,结果为假,所以只需要直接返回B的值即可(当然,B就不能为毫无逻辑的字符串了)

同理,当A or B的时候,两边有一个为真即为真,所以如果A为真的话,计算机就不会去检测B的值,直接返回A的值,验证如下:

而当A为假的时候,它才会去检测B的值,B为真,结果为真,B为假,结果为假,所以只需要直接返回B的值即可,这就能很好的理解上面的结论了。

Python笔记·第三章—— 逻辑运算的更多相关文章

  1. [Python笔记][第三章Python选择与循环]

    1月28日学习 Python选择与循环 选择结构 多分枝选择结构 if 表达式 1: 语句块 1 elif 表达式 2: 语句块 2 elif 表达式 3: 语句块 3 ... else : 语句块 ...

  2. Android群英传笔记——第三章:Android控件架构与自定义控件讲解

    Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基 ...

  3. 《DOM Scripting》学习笔记-——第三章 DOM

    <Dom Scripting>学习笔记 第三章 DOM 本章内容: 1.节点的概念. 2.四个DOM方法:getElementById, getElementsByTagName, get ...

  4. 《Linux内核设计与分析》第六周读书笔记——第三章

    <Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...

  5. spring boot 笔记--第三章

    spring boot 笔记 第三章,使用Spring boot 构建系统: 强烈建议支持依赖管理的构建系统,Maven或Gradle 依赖管理: Spring Boot的每版本都会提供它支持的依赖列 ...

  6. The Road to learn React书籍学习笔记(第三章)

    The Road to learn React书籍学习笔记(第三章) 代码详情 声明周期方法 通过之前的学习,可以了解到ES6 类组件中的生命周期方法 constructor() 和 render() ...

  7. [HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设

    [HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设 敲黑板!! <q>元素添加短引用,<blockquote>添加长引用 在段落里添加引用就使用< ...

  8. JVM学习笔记-第三章-垃圾收集器与内存分配策略

    JVM学习笔记-第三章-垃圾收集器与内存分配策略 tips:对于3.4之前的章节可见博客:https://blog.csdn.net/sanhewuyang/article/details/95380 ...

  9. python学习笔记——第三章 串

    第三章 字符串学习 1.字符串不灵活, 它不能被分割符值 >>> format = "hello, %s. %s enough for ya?" >> ...

随机推荐

  1. 坦言spring中事务、重试、异步执行注解

    一.@Transaction 我们再编码过程中,大量使用到这个注解.一般情况下,@Transaction使用默认注解可以完成90%的功能,下面会针对一些特殊场景下,@Tansaction的使用注意 1 ...

  2. 一:详解 HTTP 协议

    本篇文章篇幅比较长,先来个思维导图预览一下. 一张图带你看完本篇文章 一.概述 1.计算机网络体系结构分层 计算机网络体系结构分层 2.TCP/IP 通信传输流 利用 TCP/IP 协议族进行网络通信 ...

  3. 利用Pycharm本地调试spark-streaming(包含kafka和zookeeper等操作)

    环境准备就不说了! 第一步:打开Pycharm,在File->Setting->Project Structure中点击Add Content Root 添加本地python调用java和 ...

  4. ROS wiki 学习(1)创建程序包时遇到的rosdep update出错

    1. 使用turtlebot官网的ubuntu14.04走ROS维基时,在创建程序包后出现错误. 按照提示执行之后,出现以下错误. 搜寻度娘,几经波折后,终于解决.解决过程如下: 首先删除默认文件20 ...

  5. Java中static关键字的详解

    static关键字可以修饰方法和成员变量(不可以修饰局部变量,但是可以修饰内部类). static关键字方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者 ...

  6. 张高兴的 Xamarin.Forms 开发笔记:TapGestureRecognizer 的简单介绍与应用

    最近很少写应用了,一直在忙关于 ASP.NET 的东西(哈欠...).抽点时间对 TapGestureRecognizer 做点总结. 一.简介 TapGestureRecognizer 就是对 Ta ...

  7. vuejs配置less

     本次我们来聊聊,vuejs里如何使用less.都是根据自己的开发经验来写,不对的地方请各位拍砖. 在webstorm上配置Less 首先,全局安装less npm install less -g 然 ...

  8. 《java.util.concurrent 包源码阅读》26 Fork/Join框架之Join

    接下来看看调用ForkJoinTask的join方法都发生了什么: public final V join() { // doJoin方法返回该任务的状态,状态值有三种: // NORMAL, CAN ...

  9. 状态压缩dp第一题

    标签: ACM 题目: Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; ...

  10. python语言 第一个程序

    print("hello word!") # for i in range(1, 10):# for j in range(1, 10):# print(j, "x&qu ...