当前位置: 首页 > news >正文

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&#xff08;与&#xff09;2.or&#xff08;或&#xff09;3.not&#xff08;非&#xff09;4.逻辑运算符的细节&#xff08;短路原则&#xff09;&#xff08;着重理解&#xff09; 总结 前言 1、比较运算符内容很简单&#…...

MySQL 四种插入命令及其特点与锁机制

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

AKShare学习笔记

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

A星寻路算法

A星寻路算法简介 A星寻路算法&#xff08;A* Search Algorithm&#xff09;是一种启发式搜索算法&#xff0c;它在图形平面上进行搜索&#xff0c;寻找从起始点到终点的最短路径。A星算法结合了广度优先搜索&#xff08;BFS&#xff09;和最佳优先搜索&#xff08;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 的常用方法&#xff1a; e…...

Spark中使用DataFrame进行数据转换和操作

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

windows11新装机,简单评测系统自带软件(基本涵盖日常所需应用)

新年将近&#xff0c;由于当年安排的失误&#xff0c;系统盘&#xff08;100G&#xff09;和照片视频盘&#xff08;4T&#xff09;容量不够了&#xff0c;大容量的那块机械盘放在机箱里就在耳朵根吵吵&#xff0c;烦得很&#xff0c;于是狠狠心决定扩容后重配重装。 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详解&#xff1a;深入探讨计算机基础》 引言&#xff1a; 在计算机科学领域&#xff0c;操作系统是一个至关重要的概念&#xff0c;而Linux作为一种开源的Unix-like操作系统&#xff0c;不仅在服务器领域广泛应用&#xff0c;也在嵌入式系统、超级计算机等多个领域发挥…...

HarmonyOS 实践之应用状态变量共享

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

ThreadLocal共享变量

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

前端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 祝福大家和自己健康喜乐&#xff0c;升职加薪&#xff0c;新年快乐 页面加载事件load 我们页面加载事件的触发是等所有的资源加载完毕时触发该事件。和click一样是事件&#xff0c;但是触发时机是等资源加载&#xff08;浏览器&#xff09;完毕。这个事件我们可以将…...

OpenCV-Python(21):轮廓特征及周长、面积凸包检测和形状近似

2. 轮廓特征 轮廓特征是指由轮廓形状和结构衍生出来的一些特征参数。这些特征参数可以用于图像识别、目标检测和形状分析等应用中。常见的轮廓特征包括&#xff1a; 面积&#xff1a;轮廓所包围的区域的面积。周长&#xff1a;轮廓的周长&#xff0c;即轮廓线的长度。弧长&…...

连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver‘,亲测有效!!!

Jmeter连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver’ 1.到官方下载驱动注意&#xff1a;根据项目的JDK版本来下载对应的驱动Download | pgJDBC 2.将postgresql-42.2.27.jar复制到lib目录下面&#xff0c; 然后重新启动 连接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&#xff08;纯代码实现&#xff09; 后有一部分猿友叫我提供一下源码&#xff0c;实际上我的源码已经贴在帖子上了&#xff0c;都是同样的步骤&#xff0c;只是加多一点设置就可以了。今天我再次上传一下相对情况比较完整…...

Linux自己的应用商店yum

&#x1f4ab;Linux系统如何安装软件 在Linux系统中我们可以通过多种方式安装软件&#xff0c;常见方式有以下三种&#xff1a;   1.源代码安装   2.rpm包安装   3.使用yum软件包管理器安装   早期人们通过下载软件源代码&#xff0c;然后再经过交叉编译等一系列工作下…...

集成电路模拟设计——【基于Serdes 应用的 串化/解串器 时钟与数据恢复电路CDR】

串化/解串器 & 时钟与数据恢复电路CDR&#xff08;可提供实现过程、仿真波形与具体参数细节 本文内容摘要背景串化/解串器全速树形串化器半速树形串化器全速移位寄存器串化器多级树形解串器 PLL型CDR整体架构实现结果 Bang-Bang型CDR整体架构 PS/PI型CDR电路PS电路设计PI电…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...