Python基础-04(比较运算符、逻辑运算符)
文章目录
- 前言
- 一、比较运算符
- 二、逻辑运算符
- 1.and(与)
- 2.or(或)
- 3.not(非)
- 4.逻辑运算符的细节(短路原则)(着重理解)
- 总结
前言
1、比较运算符内容很简单,就是简单的数学逻辑
2、逻辑运算符理解思考一下即可,要摸透逻辑运算符的执行逻辑,稍微花那么一丢丢时间着重看一下
下面都是我个人的理解,如有建议,必虚心采纳
一、比较运算符
'''
逻辑方面就是正常的数学逻辑,稍微注意一些python特有的的比较运算符的细节即可
不需要过于深究
''''''
关于返回值 比较运算符最终返回的是布尔类型的变量(True和False)
比较运算符两边的变量 符合对应比较运算符的逻辑 返回True;反之为False
'''# ==(等于)
'''
这里稍稍提示一下 == 和 =(赋值运算符)两者完全没有任何关系 千万别搞错了
'''
print(5 == 5) # True# !=(不等于)
'''
python2版本的不等于是 <> python3现已弃用
'''
print(5 != 5) # False# >(大于)
print(5 > 5) # False# <(小于)
print(5 < 5) # False# >=(大于等于)
print(5 >= 5) # True# <=(小于等于)
print(5 <= 5) # True
二、逻辑运算符
一共三个 稍微思考一下就很好理解 也是很容易明白的逻辑and or not
对应中文含义 与 或 非
1.and(与)
'''
and 与 两边都是True,结果才为True(x and y,x和y都为True,结果为True)
'''
print((10 == 10) and (5 == 5)) # True and True True
print((10 == 10) and (5 == 4)) # True and False False
2.or(或)
'''
or 或 只要有一边为True,结果就为True(x or y,x和y其中一个为True,结果就是True)
'''
print((10 == 10) or (5 == 4)) # True or False True
print((10 == 9) or (5 == 4)) # False or False False
3.not(非)
'''
not 非(取反) 若x为True,则not x为False;若x为False,则not x为True;
'''
print(not (10 == 10)) # not True False
print(not (10 == 9)) # not False True
4.逻辑运算符的细节(短路原则)(着重理解)
'''
首先 明确逻辑运算的执行顺序 从左到右
'''# and短路
'''
什么是短路?就是执行到某个步骤时不符合逻辑要求就中断停止
'''
print(True and print('python 1')) # python 1
print(False and print('python 2')) # None
'''
总结:
and运算符前面的结果为False时,直接停止,后面的代码就不再继续执行了
'''# or短路
print(True or print('python 1')) # None
print(False or print('python 2')) # python 2
'''
总结:
or运算符前面的结果为True时,直接停止,后面的代码就不再继续执行了
因为or 只要其中一个True 它结果就是True了 没有必要继续执行后面的内容
'''# 扩展(关于提到逻辑运算符两边存在非布尔型变量的问题)
'''
其实吧 逻辑运算符根本没有去强调运算符两边的数据内容类型 可以是布尔类型 常量 字符串 打印啊什么的
正常的语句基本都可以关键在于必须遵守这个短路原则(重要):
其实逻辑运算符就是返回最终执行到的步骤的结果,说人话就是,执行到哪儿,就返回哪儿的值
''''''
and具体讲解
广义:and运算符两边都要是True,结果才为True
狭义:更准确的说法应该是,从左到右的执行过程中,执行至False时,短路停止执行,最终结果为 停止执行处的结果
'''
# 例
print(True and True) # True 没有遇见False,执行至最后一个数据停止,所以输出True
print(False and True) # False 遇见False,直接短路,停止执行,所以输出False
print(1 and 3) # 3 没有遇见False,执行至最后一个数据停止,所以输出3
print(1 and "hello world") # hello world 没有遇见False,执行至最后一个数据停止,所以输出hello world
print('--------------------------------------------------------------------------1')'''
or具体讲解
广义:or运算符只需要其中一边为True,结果就为True
狭义:更准确的说法应该是,从左到右的执行过程中,执行至非False时,短路停止执行,最终结果为 停止执行处的结果
'''
# 例
print(True or True) # True 执行至第一个True就是非False,直接短路,停止执行,所以输出True
print(False or True) # True 执行至第二个True就是非False,直接短路,停止执行,所以输出True
print(1 or 3) # 1 执行至1,非False,直接短路,停止执行,所以输出1
print("hello world" or True) # hello world 执行至"hello world",非False,直接短路,停止执行,所以输出hello world'''
强调一下两个细节
1、(非False和True的不同)
非False的范围更大,也就是说只要不是False,都属于非Fasle(包括True,除了False以外的所有东西)
而True,就仅仅只是个True2、(逻辑运算符的执行顺序,从左至右)
3、(逻辑运算符的优先级 not > and > or)
'''
总结
强调理解逻辑运算符的短路原则,虽然说平时运用到的都是广义上的逻辑运算符的逻辑,就是看两边有没有True或者False啥的
其实稍微认真花个十几分钟看一下然后稍微思考一下,很容易就明白的原理,建议认真看下逻辑运算符的细节~
相关文章:

Python基础-04(比较运算符、逻辑运算符)
文章目录 前言一、比较运算符二、逻辑运算符1.and(与)2.or(或)3.not(非)4.逻辑运算符的细节(短路原则)(着重理解) 总结 前言 1、比较运算符内容很简单&#…...

MySQL 四种插入命令及其特点与锁机制
目录 1. INSERT INTO 2. INSERT IGNORE INTO 3. INSERT INTO ... ON DUPLICATE KEY UPDATE 4. REPLACE INTO 总结 MySQL提供了多种数据插入方式,每种方式在处理唯一键冲突时的行为不同,同时也涉及不同的锁机制。 1. INSERT INTO INSERT INTO是标准…...

AKShare学习笔记
AKShare学习笔记 本文内容参考AKShare文档。AKShare开源财经数据接口库采集的数据都来自公开的数据源,数据接口查询出来的数据具有滞后性。接口参考AKShare数据字典。 AKShare环境配置 安装Anaconda,使用Anaconda3-2019.07版本包,配置清华数…...

A星寻路算法
A星寻路算法简介 A星寻路算法(A* Search Algorithm)是一种启发式搜索算法,它在图形平面上进行搜索,寻找从起始点到终点的最短路径。A星算法结合了广度优先搜索(BFS)和最佳优先搜索(Best-First S…...

QDialog
属性方法 样式表 background-color: qlineargradient(spread:reflect, x1:0.999896, y1:0.494136, x2:1, y2:1, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));border: 1px groove rgb(232, 232, 232);border-radius: 20px; QDialog 的常用方法: e…...

Spark中使用DataFrame进行数据转换和操作
Apache Spark是一个强大的分布式计算框架,其中DataFrame是一个核心概念,用于处理结构化数据。DataFrame提供了丰富的数据转换和操作功能,使数据处理变得更加容易和高效。本文将深入探讨Spark中如何使用DataFrame进行数据转换和操作࿰…...

windows11新装机,简单评测系统自带软件(基本涵盖日常所需应用)
新年将近,由于当年安排的失误,系统盘(100G)和照片视频盘(4T)容量不够了,大容量的那块机械盘放在机箱里就在耳朵根吵吵,烦得很,于是狠狠心决定扩容后重配重装。 2023年最后…...

概念解析 | Shapley值及其在深度学习中的应用
注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:Shapley值及其在深度学习中的应用。 1 背景介绍 在机器学习和数据分析中,理解模型的预测是非常重要的。尤其是在深度学习黑盒模型中,我们往往难以直观地理解模型的预测行为。为…...

ajax的完整写法——success/error/complete+then/catch/done+设置请求头两种方法——基础积累
ajax的完整写法——success/error/completethen/catch/done设置请求头两种方法——基础积累 1.完整写法——success/error/complete1.1 GET/DELETE——query传参1.2 GET/DELETE——JSON对象传参1.3 PUT/POST——JSON对象传参 2.简化写法——then/catch/done2.1 GET/DELETE——q…...

《Linux详解:深入探讨计算机基础》
《Linux详解:深入探讨计算机基础》 引言: 在计算机科学领域,操作系统是一个至关重要的概念,而Linux作为一种开源的Unix-like操作系统,不仅在服务器领域广泛应用,也在嵌入式系统、超级计算机等多个领域发挥…...

HarmonyOS 实践之应用状态变量共享
平时在开发的过程中,我们会在应用中共享数据,在不同的页面间共享信息。虽然常用的共享信息,也可以通过不同页面中组件间信息共享的方式,但有时使用应用级别的状态管理会让开发工作变得简单。 根据不同的使用场景,ArkTS…...

ThreadLocal共享变量
一、ThreadLocal 我们知道多线程访问同一个共享变量时,会出现线程安全问题,为了保证线程安全开发者需要对共享变量的访问操作进行适当的同步操作,如加锁等同步操作。 除此之外,Java提供了ThreadLocal类,当一个共享变…...

前端crypto-js 库: MD5
文章目录 什么是crypto-js安装依赖MD5 什么是crypto-js github地址: https://github.com/brix/crypto-js cryptojs文档: https://cryptojs.gitbook.io/docs/#encoders CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。 CryptoJS是一个JavaScript加密算法库&a…...

2024新年快乐
2024-1-1 祝福大家和自己健康喜乐,升职加薪,新年快乐 页面加载事件load 我们页面加载事件的触发是等所有的资源加载完毕时触发该事件。和click一样是事件,但是触发时机是等资源加载(浏览器)完毕。这个事件我们可以将…...

OpenCV-Python(21):轮廓特征及周长、面积凸包检测和形状近似
2. 轮廓特征 轮廓特征是指由轮廓形状和结构衍生出来的一些特征参数。这些特征参数可以用于图像识别、目标检测和形状分析等应用中。常见的轮廓特征包括: 面积:轮廓所包围的区域的面积。周长:轮廓的周长,即轮廓线的长度。弧长&…...

连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver‘,亲测有效!!!
Jmeter连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver’ 1.到官方下载驱动注意:根据项目的JDK版本来下载对应的驱动Download | pgJDBC 2.将postgresql-42.2.27.jar复制到lib目录下面, 然后重新启动 连接driver信息如下&#…...

SQLAlchemy快速入门
安装依赖 pip install sqlalchemy pip install pymysql创建数据库和表 # 创建数据库 drop database if exists sqlalchemy_demo; create database sqlalchemy_demo character set utf8mb4; use sqlalchemy_demo;# 创建表 drop table if exists user; create table user (id …...

java 纯代码导出pdf合并单元格
java 纯代码导出pdf合并单元格 接上篇博客 java导出pdf(纯代码实现) 后有一部分猿友叫我提供一下源码,实际上我的源码已经贴在帖子上了,都是同样的步骤,只是加多一点设置就可以了。今天我再次上传一下相对情况比较完整…...

Linux自己的应用商店yum
💫Linux系统如何安装软件 在Linux系统中我们可以通过多种方式安装软件,常见方式有以下三种: 1.源代码安装 2.rpm包安装 3.使用yum软件包管理器安装 早期人们通过下载软件源代码,然后再经过交叉编译等一系列工作下…...

集成电路模拟设计——【基于Serdes 应用的 串化/解串器 时钟与数据恢复电路CDR】
串化/解串器 & 时钟与数据恢复电路CDR(可提供实现过程、仿真波形与具体参数细节 本文内容摘要背景串化/解串器全速树形串化器半速树形串化器全速移位寄存器串化器多级树形解串器 PLL型CDR整体架构实现结果 Bang-Bang型CDR整体架构 PS/PI型CDR电路PS电路设计PI电…...

OpenWrt 编译入门(小白版)
编译环境 示例编译所用系统为 Ubuntu 22.04,信息如下 编译时由于网络问题,部分软件包可能出现下载问题,还请自备网络工具或尝试重新运行命令 编译步骤 下图为官网指示 编译环境设置(Build system setup) 这里根据我…...

嵌入式视频播放器(mplayer)
1.文件准备: MPlayer-1.0rc2.tar.bz2 libmad-0.15.1b.tar.gz 直接Git到本地 git clone https://gitee.com/zxz_FINE/mplayer_tarball.git 2.文件夹准备: src存放解压后的源码文件,target_Mplayer存放编译安装的目标文件 mkdir src targe…...

对房价数据集进行处理和数据分析
大家好,我是带我去滑雪,每天教你一个小技巧! 房价数据集通常包含各种各样的特征,如房屋面积、地理位置、建造年份等。通过对数据进行处理和分析,可以更好地理解这些特征之间的关系,以及它们对房价的影响程度…...

BERT的学习
BERT 1.前言 self-supervised learning是一种无监督学习的特殊形式,算法从数据本身生成标签或者目标,然后利用这些生成的目标来进行学习。(也就是说数据集的标签是模型自动生成的,不是由人为提供的。)例如࿰…...

数据结构OJ实验9-图存储结构和遍历
A. 图综合练习--构建邻接表 题目描述 已知一有向图,构建该图对应的邻接表。 邻接表包含数组和单链表两种数据结构,其中每个数组元素也是单链表的头结点,数组元素包含两个属性,属性一是顶点编号info,属性二是指针域n…...

20231226在Firefly的AIO-3399J开发板上在Android11下调通后摄像头ov13850
20231226在Firefly的AIO-3399J开发板上在Android11下调通后摄像头ov13850 2023/12/26 8:22 开发板:Firefly的AIO-3399J【RK3399】 SDK:rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.0.tar.bz2.ab And…...

0101包冲突导致安装docker失败-docker-云原生
文章目录 1 前言2 报错3 解决结语 1 前言 最近在学习k8s,前置条件就是要安装指定版本的docker,命令如下 yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.62 报错 file /usr/libexec/docker/cli-plugins/docker-buildx fr…...

【力扣100】17.电话号码的字母组合
添加链接描述 class Solution:def letterCombinations(self, digits: str) -> List[str]:# 思路是使用回溯算法if not digits:return []phone {2:[a,b,c],3:[d,e,f],4:[g,h,i],5:[j,k,l],6:[m,n,o],7:[p,q,r,s],8:[t,u,v],9:[w,x,y,z]}def backtrack(con,dig):# 收获if le…...

2023。
一月 从头开始 二月 准备复试&初试成绩 三月 最开心 过了两个生日(这机率,幸运儿) 考研也成功上岸!nnuGISer! 四月 和室友去了趟武汉 五月 拍毕业照 六月 人生高光时刻 省创!上台领奖!考研…...

出现 Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value解决方法
目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 在驱动Springboot项目的时候,出现如下问题: org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql...