一、逻辑运算符的种类及优先级
▷逻辑运算符包括 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笔记·第三章—— 逻辑运算的更多相关文章
-
[Python笔记][第三章Python选择与循环]
1月28日学习 Python选择与循环 选择结构 多分枝选择结构 if 表达式 1: 语句块 1 elif 表达式 2: 语句块 2 elif 表达式 3: 语句块 3 ... else : 语句块 ...
-
Android群英传笔记——第三章:Android控件架构与自定义控件讲解
Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基 ...
-
《DOM Scripting》学习笔记-——第三章 DOM
<Dom Scripting>学习笔记 第三章 DOM 本章内容: 1.节点的概念. 2.四个DOM方法:getElementById, getElementsByTagName, get ...
-
《Linux内核设计与分析》第六周读书笔记——第三章
<Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...
-
spring boot 笔记--第三章
spring boot 笔记 第三章,使用Spring boot 构建系统: 强烈建议支持依赖管理的构建系统,Maven或Gradle 依赖管理: Spring Boot的每版本都会提供它支持的依赖列 ...
-
The Road to learn React书籍学习笔记(第三章)
The Road to learn React书籍学习笔记(第三章) 代码详情 声明周期方法 通过之前的学习,可以了解到ES6 类组件中的生命周期方法 constructor() 和 render() ...
-
[HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设
[HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设 敲黑板!! <q>元素添加短引用,<blockquote>添加长引用 在段落里添加引用就使用< ...
-
JVM学习笔记-第三章-垃圾收集器与内存分配策略
JVM学习笔记-第三章-垃圾收集器与内存分配策略 tips:对于3.4之前的章节可见博客:https://blog.csdn.net/sanhewuyang/article/details/95380 ...
-
python学习笔记——第三章 串
第三章 字符串学习 1.字符串不灵活, 它不能被分割符值 >>> format = "hello, %s. %s enough for ya?" >> ...
随机推荐
-
POJ 1503 Integer Inquiry 简单大数相加
Description One of the first users of BIT's new supercomputer was Chip Diller. He extended his explo ...
-
Node.js真的有高并发优势吗?看看Node.js和Tomcat的并发测试结果
同一套业务逻辑,实现一个webservice中间接口,中间涉及memcached和mogodb的一些操作.分别在Node.js和JAVA平台实现,java代码部署在Tomcat 7.0上,用Apach ...
-
基于visual Studio2013解决C语言竞赛题之0603打印素数
题目
-
【从无到有】教你使用animation做简单的动画效果
今天写写怎么用animation属性做一些简单的动画效果 在CSS选择器中,使用animition动画属性,调用声明好的关键帧 首先声明一个动画(关键帧): @keyframes name{ from ...
-
爬虫_中国天气网_文字天气预报(xpath)
import requests from lxml import etree headers = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/5 ...
-
面試題之web
1. django和flask框架的区别? django:大而全的全的框架,重武器:内置很多组件:ORM.admin.Form.ModelForm.中间件.信号.缓存.csrf等 flask: 微型框 ...
-
Maven的pom.xml文件详解【转载】
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
-
Bootstrap按钮式下拉菜单
前面的话 按钮式下拉菜单仅从外观上看,和下拉菜单效果基本上是一样的.不同的是普通的下拉菜单是block元素,而按钮式下拉菜单是inline-block元素.本文将详细介绍Bootstrap按钮式下拉菜 ...
-
毕设demo写好
2015年1月20日 14:41:47 阶段性暂停!! 把运行结果截图给了老师,老师说先整理下文档,然后下学期来了再部署到服务器上. 那么,下学期来了,估计也要把Epm和CR1000什么的搞好了. 先 ...
-
java微信 客服接口-发消息 中文乱码
/** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参 ...