Python 运算符(二)

news2024/10/7 10:21:54

文章目录

  • Python逻辑运算符
  • Python成员运算符
  • Python身份运算符
  • Python运算符优先级
  • 后记

Python逻辑运算符

Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

运算符逻辑表达式描述实例
andx and y 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 (a and b) 返回 20。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

以下实例演示了Python所有逻辑运算符的操作:

实例(Python 3.0+)

#!/usr/bin/python3
 
a = 10
b = 20
 
if ( a and b ):
   print ("1 - 变量 a 和 b 都为 true")
else:
   print ("1 - 变量 a 和 b 有一个不为 true")
 
if ( a or b ):
   print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
   print ("2 - 变量 a 和 b 都不为 true")
 
# 修改变量 a 的值
a = 0
if ( a and b ):
   print ("3 - 变量 a 和 b 都为 true")
else:
   print ("3 - 变量 a 和 b 有一个不为 true")
 
if ( a or b ):
   print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
   print ("4 - 变量 a 和 b 都不为 true")
 
if not( a and b ):
   print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
   print ("5 - 变量 a 和 b 都为 true")

以上实例输出结果如下图所示:

在这里插入图片描述

Python成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

运算符描述实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

以下实例演示了Python所有成员运算符的操作:

实例(Python 3.0+)

#!/usr/bin/python3
 
a = 10
b = 20
list = [1, 2, 3, 4, 5 ]
 
if ( a in list ):
   print ("1 - 变量 a 在给定的列表中 list 中")
else:
   print ("1 - 变量 a 不在给定的列表中 list 中")
 
if ( b not in list ):
   print ("2 - 变量 b 不在给定的列表中 list 中")
else:
   print ("2 - 变量 b 在给定的列表中 list 中")
 
# 修改变量 a 的值
a = 2
if ( a in list ):
   print ("3 - 变量 a 在给定的列表中 list 中")
else:
   print ("3 - 变量 a 不在给定的列表中 list 中")

以上实例输出结果如下图所示:

在这里插入图片描述

Python身份运算符

身份运算符用于比较两个对象的存储单元

运算符描述实例
is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(x) != id(y)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

注: id() 函数用于获取对象内存地址。

以下实例演示了Python所有身份运算符的操作:

实例(Python 3.0+)

#!/usr/bin/python3
 
a = 20
b = 20
 
if ( a is b ):
   print ("1 - a 和 b 有相同的标识")
else:
   print ("1 - a 和 b 没有相同的标识")
 
if ( id(a) == id(b) ):
   print ("2 - a 和 b 有相同的标识")
else:
   print ("2 - a 和 b 没有相同的标识")
 
# 修改变量 b 的值
b = 30
if ( a is b ):
   print ("3 - a 和 b 有相同的标识")
else:
   print ("3 - a 和 b 没有相同的标识")
 
if ( a is not b ):
   print ("4 - a 和 b 没有相同的标识")
else:
   print ("4 - a 和 b 有相同的标识")

以上实例输出结果如下图所示:

在这里插入图片描述

is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

>>>a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。 运算符均指二元运算,除非特别指出。 相同单元格内的运算符从左至右分组(除了幂运算是从右至左分组):

运算符

描述

(expressions...),

[expressions...], {key: value...}, {expressions...}

圆括号的表达式

x[index], x[index:index], x(arguments...), x.attribute

读取,切片,调用,属性引用

await x

await 表达式

**

乘方(指数)

+x, -x, ~x

正,负,按位非 NOT

*, @, /, //, %

乘,矩阵乘,除,整除,取余

+, -

加和减

<<, >>

移位

&

按位与 AND

^

按位异或 XOR

|

按位或 OR

in,not in, is,is not, <, <=, >, >=, !=, ==

比较运算,包括成员检测和标识号检测

not x

逻辑非 NOT

and

逻辑与 AND

or

逻辑或 OR

if -- else

条件表达式

lambda

lambda 表达式

:=

赋值表达式

以下实例演示了Python所有运算符优先级的操作:

实例(Python 3.0+)

 #!/usr/bin/python3

a = 20
b = 10
c = 15
d = 5![在这里插入图片描述](https://img-blog.csdnimg.cn/46f4664c002644fbb1453f2bd19d346d.png#pic_center)

e = 0

e = (a + b) * c / d       #( 30 * 15 ) / 5
print ("(a + b) * c / d 运算结果为:",  e)

e = ((a + b) * c) / d     # (30 * 15 ) / 5
print ("((a + b) * c) / d 运算结果为:",  e)

e = (a + b) * (c / d)    # (30) * (15/5)
print ("(a + b) * (c / d) 运算结果为:",  e)

e = a + (b * c) / d      #  20 + (150/5)
print ("a + (b * c) / d 运算结果为:",  e)

以上实例输出结果如下图所示:

在这里插入图片描述

and 拥有更高优先级:

实例

x = True
y = False
z = False
 
if x or y and z:
    print("yes")
else:
    print("no")

以上实例先计算 y and z 并返回 False ,然后 x or False 返回 True,输出结果如下图所示:

在这里插入图片描述
注意:Python3 已不支持 <> 运算符,可以使用 != 代替,如果你一定要使用这种比较运算符,可以使用以下的方式:

>>> from __future__ import barry_as_FLUFL
>>> 1 <> 2
True

后记

学习了 Python 运算符的使用方法后,我们可以更加灵活地使用 Python 进行编程,实现各种逻辑和操作。在实际应用中,需要根据实际情况灵活选择使用不同的运算符,以达到最优的效果。除此之外,我们还需要注意运算符的优先级和结合性,避免出现因运算符优先级导致的错误。在编写代码时,建议注重代码的可读性和可维护性,避免使用过于复杂的表达式和嵌套结构,以便后续的代码重构和维护。

转载自:https://blog.csdn.net/u014727709/article/details/131622383
欢迎start,欢迎评论,欢迎指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/743823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

php周练

前言&#xff1a;博主个人小练&#xff08;纯小白&#xff09;。 目录 1.[SWPUCTF 2021 新生赛]gift_F12已解决2.[SWPUCTF 2021 新生赛]jicao3.[ZJCTF 2019]NiZhuanSiWei4.[SWPUCTF 2021 新生赛]no_wakeup5.[SWPUCTF 2021 新生赛]ez_unserialize 1.[SWPUCTF 2021 新生赛]gift_…

Ae 效果:CC RepeTile

风格化/CC RepeTile Stylize/CC RepeTile CC RepeTile&#xff08;CC 重复拼贴&#xff09;效果可对整个图层进行复制并扩展&#xff0c;通过重复拼贴来创建平铺效果。 ◆ ◆ ◆ 效果属性说明 Expand Right 向右扩展 设置图层向右扩展的距离。 Expand Left 向左扩展 设置图层…

VMware vCenter Server 7.0 Update 3n 下载 - 集中管理 vSphere 环境

VMware vCenter Server 7.0 Update 3n 下载 - 集中管理 vSphere 环境 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vcenter-7-u3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org VMware vCenter Server 是一款高…

【菜菜丸的菜鸟教程】制作带闹铃和振动功能的仿真闹钟

一、准备闹钟模型 (一)下载模型 从Unity资源商店和其他模型网站可以下载到各种各样的闹钟模型。为了帮助大家了解机械钟表的设置原理&#xff0c;建议使用带有时针、分针和秒针的钟表&#xff0c;如下图。 注意&#xff1a;时针、分针和秒针最好是挂在闹钟父物体下的三个独立的…

【数据结构】--二叉树

注&#xff1a;本文树和二叉树的概念及结构部分有部分参考了别的文章&#xff0c;其他的二叉树的实现和性质习题等等都是自己一点点写的&#xff0c;创作不易&#xff0c;希望支持&#xff01; ————————————————————— 目录 一. 树概念及结构 1、树概念…

springboot家具商城系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

Spring Boot 系列2 -- 配置文件

目录 1. 配置文件的作用 2. 配置文件的格式 3. properties 配置文件说明 3.1 properties 基本语法 3.2 读取配置文件 3.3 properties 缺点 4.yml 配置文件说明 4.1 yml 基本语法 4.2 yml 使用进阶 4.2.1 yml 配置不同数据类型及 null 4.2.2 yml 配置读取 4.2.3 注意…

FPGA学习——点亮流水灯

文章目录 一、前言二、源码三、ModelSim仿真3.1 tb文件源码&#xff1a;3.2 创建项目3.3 ModelSim仿真 一、前言 在FPGA开发板中&#xff0c;一般板载LED默认高电平点亮&#xff0c;因此我们只需要将想要亮起的LED赋值为1即可。 本入门实验要求为每隔1s开发板上的LED轮流亮起&…

STM32 Proteus仿真医用仓库环境控制系统紫外线消毒RS232上传CO2 -0066

STM32 Proteus仿真医用仓库环境控制系统紫外线消毒RS232上传CO2 -0066 Proteus仿真小实验&#xff1a; STM32 Proteus仿真医用仓库环境控制系统紫外线消毒RS232上传CO2 -0066 功能&#xff1a; 硬件组成&#xff1a;STM32F103R6单片机 LCD1602显示器DHT11温度湿度电位器模拟…

高分卫星影像及GIS技术在甘南泥石流灾害中的应用

本文使用的甘南夏河县泥石流灾情专题数据如下&#xff08;来源于高分甘肃中心&#xff09;&#xff1a; &#xff08;1&#xff09;灾前遥感影像 &#xff08;2&#xff09;灾害位置 &#xff08;3&#xff09;基础地理数据&#xff1a;行政区划、交通路网、河流水系、湖泊水库…

前端Vue自定义精美steps步骤条进度条插件 物流信息跟踪展示组件 流程审批跟进组件

随着技术的发展&#xff0c;开发的复杂度也越来越高&#xff0c;传统开发方式将一个系统做成了整块应用&#xff0c;经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改&#xff0c;造成牵一发而动全身。 通过组件化开发&#xff0c;可以有效实现…

怎么用PDF派工具将Word转成PDF

Word是我们最常用的一种格式文件&#xff0c;它易于编辑&#xff0c;但是安全性和稳定性较差&#xff0c;有时候我们发送给别人的Word文件&#xff0c;接收到打开内容已经乱码。遇到这种情况&#xff0c;我们可以优先将Word文件转换成稳定性好的PDF文件。那么如何进行文件格式转…

如何使用伪元素 ::before 实现 Antd 表单一模一样的 required 红色 * 号

如何使用伪元素 ::before 实现 Antd 表单一模一样的 required 红色 * 号 背景 以一个简单的 Form.Item 包裹 Select 为例 我们去实现它的 * 号 操作 F12 打开控制台选中这个元素上面查看 CSS 属性 仿照这个写在 .less 文件里 // .less .ruleTable::before {display: inlin…

RiProV2主题一级分类显示包含子分类的数量Ritheme主题美化WordPress美化类似的步骤

美化-RiProV2主题一级分类显示包含子分类的数量 WordPress主题一级分类页面显示包含子分类的数量 一级分类显示子分类相加的数量 原主题配置项 原来的RiProV2主题,虽然有个配置用来显示分类下的数量。 但是该数量有个问题,就是一级分类的数量显示不包含该一级分类下二级…

操作系统14:缓冲区和磁盘调度算法

目录 1、缓冲区管理 &#xff08;1&#xff09;单缓冲区和双缓冲区 1.1 - 单缓冲区 1.2 - 双缓冲区 &#xff08;2&#xff09;环形缓冲区/多缓冲区 &#xff08;3&#xff09;缓冲池(Buffer Pool) 3.1 - 缓冲池的组成 3.2 - 缓冲池的工作方式 2、磁盘存储器的性能和调…

面向对象进阶一(static,继承,多态)

面向对象进阶一 一、static二、继承2.1 继承的定义和特点2.2 继承内容、成员变量和成员方法的访问特点2.2.1继承内容2.2.2 成员变量的访问特点2.2.3 成员方法的访问方法、方法的重写 2.3 继承中构造方法的访问特点 三、this、super使用总结四、多态4.1 多态的基本概念4.2 多态调…

MySQL 学习笔记 2:触发器

MySQL 学习笔记 2&#xff1a;触发器 图源&#xff1a;ubiq.co 触发器&#xff0c;就像字面意思那样&#xff0c;它会在数据库某些事件发生时执行一些操作。 具体来说&#xff0c;触发器会在特定表的INSERT、UPDATE、DELETE这些类型的 SQL 语句执行时被“触发”&#xff0c;并…

CopyOnWriteArrayList使用以及原理分析

文章目录 一、CopyOnWriteArrayList的简介二、CopyOnWriteArrayList类的继承关系1、Iterable接口&#xff1a;2、Collection接口&#xff1a;3、List接口&#xff1a;4、Cloneable接口&#xff1a;5、Serializable接口&#xff1a;6、RandomAccess接口&#xff1a; 三、CopyOnW…

模糊图片怎么修复清晰度?这几个方法分享给你~

在我们的日常生活和工作中&#xff0c;经常会遇到图片模糊的问题&#xff0c;这可能是由于拍摄时的手抖、对焦不准确或者图片压缩过度等原因造成的。那么&#xff0c;如何修复模糊的图片&#xff0c;提高其清晰度呢&#xff1f;本文将为您介绍几种方法。 方法一&#xff1a;使…