当前位置: 首页 > 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电…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...