python中的运算符_Python中的运算符

说完常用的数据类型,再来说下运算符。运算符用于将各种类型的数据进行运算,让静态的数据跑起来。

编程语言中的运算大致分为以下几个大类:

算术运算, 用于加减乘除等数学运算

赋值运算,用于接收运算符或方法调用返回的结果

比较运算, 用于做大小或等值比较运算

逻辑运算,用于做 与、或、非运算

位运算, 用于二进制运算

每种运算中所包含的符号称为相应的运算符,如 算术运算符、比较运算符等。

一、算术运算

运算(符)

说明

实例

+

两个对象相加

2 + 3 结果为 5

-

两个对象相减

3 - 2 结果为 1

*

两个数相乘或返回一个重复若干次的序列

2 * 3 结果为 6; 'abc' * 2 结果为 'abcabc'

/

两个数相除

3 / 2 结果为 1.5

//

整除,返回商的整数部分

3 // 2 结果为 1,3 // 2.0 结果为 1.0

%

求余/取模,返回除法的余数

3 % 2 结果为 1,3 % 2.0 结果为 1.0

**

求幂/次方

2 ** 3 结果为 8

二、赋值运算

运算(符)

描述

实例

=

简单赋值运算符

a = 5, b = 3, c = a - b

+=

加法赋值运算符

a += b 相当于 a = a + b

-=

减法赋值运算符

a -= b 相当于 a = a -b

*=

乘法赋值运算符

a *= b 相当于 a = a * b

/=

除法赋值运算符

a /= b 相当于 a = a / b

//=

取整除赋值运算符

a //= b 相当于 a = a // b

%=

取模赋值运算符

a %= b 相当于 a = a % b

**=

幂赋值运算符符

a **= b 相当于 a = a ** b

三、比较运算

Python有8中比较操作,它们具有相同的优先级。比较操作可以被任意连接,比如 x< y <= z 等同于 x < y and y <= z,只是第一种形式下的y只被评估一次。另外,当 x < y不成立时,这两种形式下的z都不会被评估。

运算(符)

说明

实例

<

严格小于

3 < 5 结果为True,5 < 5 结果为False

<=

小于或等于

3 <= 5 结果为True,5 <= 5 结果为True

>

严格大于

5 > 3 结果为True,5 > 5 结果为False

>=

大于或等于

5 >= 3 结果为True,5 >= 5 结果为True

==

等于

1 == 1.0 == True 结果为True

!=

不等于

is

判断两个标识符是否引用自一个对象

x is y, 如果id(x) == id(y),即x也y的指向同一个内存地址,则结果为1,否则结果为0

is not

判断两个标识符是否引用自不同对象

x is not y, 如果id(x) != id(y),即x和y指向不同的内存地址,则结果为1,否则结果为0

说明:

a) 不同类型的对象进行比较,从来不会相等(不同的数字类型除外);

b) 当把<、<=、> 和 >=操作符在这几种情况下会抛出TypeError异常: (1) 用于复数和另外的内置数字类型进行比较时;(2) 比较的对象为不同类型,无法进行比较时;(3) 未定义的其他情况下;

c) 一个类的不同实例通常是不相等的,除非该类定义了__eq__()方法;

d) 一个类的实例不能相对于同一类或其他类的的其他实例进行排序,除非该类定义了足够的方法__lt__(), __le__(), __gt__(), __ge__()。如果想要比较运算符的常规含义, __lt__()和__eq__()就足够了;

e) is 和 is not操作符的行为是不能自定义的;另外,它们可以被应用到两个不同类型的对象,不会已发异常。

f) 另外两个具有相同句法优先级的操作是 in 和 not in,它们支持序列、集合和映射类型的对象。

g) 比较运算的结果为布尔值:True 或 False

四、逻辑运算

“真”值测试(Truth Value Testing)

在讲解“布尔运算”之前,我们先来说下Python中的一个特殊操作--“真”值测试。

Python中的任何一个对象都可以被测试“真”值。这里说的“真”值测试可以这样理解:Python中的任何一个对象都可以转换为一个布尔值,而这个“真”值测试就是获取一个对象对应的布尔值的过程。

Python中只有下面这些值对应的布尔值为False:

None

False

数字类型中的0,如:0, 0.0, 0j

任意空序列,如:'', (), []

任意一个空映射,如:{}

一个用户自定义类的实例--该用户自定义类中定义了一个__bool__()或__len__()方法,且实例调用该方法时返回整数0或布尔值False

除此之外,所有的其它值对应的布尔值都是True, 因此许多类型的对象永远是True。

"真"值测试可以被用在 if或while条件中,也可以作为布尔操作的操作数。

布尔运算(Boolean Operations)

Python中的逻辑运算称为“布尔运算(Boolean Operations)”,操作符包括:and(与)、or(或)、not(非)。

下面按照他们的优先级升序顺序进行说明:

运算

结果

x or y

如果x的Truth值测试结果为False,那么该操作的结果为y的值,否则为x的值

x and y

如果x的Truth值测试结果为False, 那么该操作的结果为x的值,否则为y的值

not x

如果x的Truth值测试结果为False, 那么该操作的结果为True,否则结果为False

说明:

a)or是一个短路操作符,也就是说,只有第一个参数的评估结果为False时,第二个参数才会被评估;

b) and也是一个短路操作符,也就是说,只有第一个参数的评估结果为True时,第二个参数才会被评估;

c) not操作符比非布尔操作符优先级低,因此,not a == b 被解释为 not (a == b);如果写成 a == not b会包语法错误。

五、位运算

按位运算是指把数字转换为二进制来进行计算,位运算符包括以下几种:

假设:

a = 60,对应的二进制格式为 0011 1100

b = 13, 对应的二进制格式为 0000 1101

运算符

说明

实例

&

按位与:参与运算的两个值,如果相应的二进制位都为1,则该位结果为1,否则为0

a & b 对应的二进制结果为 0000 1100,十进制为12

竖杠

按位或:参与运算的两个值,只要对应的二进制位由一个为1时,该位结果就为1

a 竖杠 b 对应的二进制结果为 0011 1101,十进制为61

^

按位异或:参与运算的两个值,当对应的二进制位不同时,该为结果为1,否则改为结果为0

a ^ b 对应的二进制结果为 0011 0001, 十进制为49

~

按位取反:这个是单目运算符,只有一个值参与运算,运算过程是对每个二进制位取反,即把1变0,把0变1

~a 的二进制结果为 1100 0011,十进制数为-61

<<

左移运算符:运算数的各二进制位全部左移若干位,高位丢弃,低位补0,结果相当于运算数乘以2的n次方,正负符号不发生改变

a << 2 的二进制结果为 1111 0000,十进制数为240

>>

右移运算符:运算数的各二进制位全部右移若干位,结果相当于运算数除以2的n次方,正负符号不发生改变

a >> 2 的二进制结果为 0000 1111,十进制为15

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

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

相关文章

excel如何去重统计户数_公式解读第三期 单元格中数字如何去重排序?

公式解读 第三期 -单元格中数字的去重排序&#xff01;本期涉及到函数较多&#xff0c;你可以一次性根据这个案例&#xff0c;学习多少很多常用 函数的用法&#xff0c;同时我也会讲解思路&#xff0c;这个很重要&#xff0c;思路决定了出路。直接先看一下我们的效果图&#xf…

机器学习 —— 神经网络(matlab)

目录 一、介绍 二、实验数学原理 三、实验算法和实验步骤 四、实例分析 一、介绍 神经网络是一种运算模型&#xff0c;由大量的节点&#xff08;或称“神经元”&#xff0c;或“单元”&#xff09;和之间相互联接构成。每个节点代表一种特定的输出函数&#xff0c;称为激励…

Java通过反射访问成员变量

通过下列任意一个方法访问成员变量时将返回 Field 类型的对象或数组。 getFields()getField(String name)getDeclaredFields()getDeclaredField(String name)上述方法返回的 Field 对象代表一个成员变量。例如&#xff0c;要访问一个名称为 price 的成员变量&#xff0c;示例代…

python 类可以调用实例变量_python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法...

1. 类对象和实例对象 Python中一切皆对象&#xff0c;Python类本身也是一种对象&#xff0c;类定义完成后&#xff0c;会在当前作用域中定义一个以类名为名字的命名空间。类对象具有以下两种操作&#xff1a; 可以通过“类名()”的方式实例化一个对象。 可以通过“类名.类属性”…

python主成分分析法降维_主成分分析降维(MNIST数据集)

今天看了用主成分分析简化数据&#xff0c;就顺便用MNIST数据集做了下实验&#xff0c;想直观地看一下效果&#xff0c;并通过完成这个小demo深入理解下原理。我发现“是什么、能做什么、怎么用、效果是什么、原理是什么、优缺点是什么”这样的思路能让我更好地接受一个新知识&…

ARIMA加法季节模型

目录 ARIMA加法季节模型 ARIMA加法季节模型函数 例题 ARIMA加法季节模型 季节效应和其它效应之间是加法关系 通过简单的趋势差分、季节差分之后转化为平稳&#xff0c;模型结构通常如下 ARIMA加法季节模型函数 例题 部分数据&#xff1a; timexJan-93977.5Feb-93892.5Mar…

Java在远程方法调用中运用反射机制

我们将介绍反射机制在网络编程中的应用&#xff0c;实现如何在客户端通过远程方法调用服务器端的方法。 假定在服务器端有一个 HelloService 接口&#xff0c;该接口具有 getTime() 和 echo() 方法&#xff0c;具体代码如下&#xff1a; import java.util.Date;public interf…

安捷伦频谱仪的使用方法图解_频谱仪的简单操作使用方法lbrack;1rsqb;

R3131A频谱仪简单操作使用方法一&#xff0e;R3131A频谱仪简介。R3131A频谱仪是日本ADVANTEST公司的产品&#xff0c;用于测量高频信号&#xff0c;可测量的频率范围为9K—3GHz。对于GSM手机的维修&#xff0c;通过频谱仪可测量射频电路中的以下电路信号, (维修人员可以通过对所…

多元时间序列分析 —— 因果检验

目录 因果检验 因果关系的识别 例 Granger 因果关系定义 两变量之间的4种因果关系 Granger因果检验 1.假设条件 2.检验统计量 例 进行Granger因果检验应该注意的问题 因果检验 因果关系的识别 对于多元时间序列而言&#xff0c;如果能找到对响应变量有显.著影响的输…

华为仿苹果字体_华为mate40系列再次霸榜DXO,网友:无敌是多么寂寞

阅读本文前&#xff0c;请您先点击上面的蓝色字体&#xff0c;再点击“关注”&#xff0c;这样您就可以免费收到最新内容了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注。声明&#xff1a;本文转载自网络&#xff0c;如有侵权&#xff0c;请在后台留言联系…

Java常见异常处理

异常&#xff08;exception&#xff09;是在运行程序时产生的一种异常情况&#xff0c;已经成为了衡量一门语言是否成熟的标准之一。 异常简介 Java 中的异常又称为例外&#xff0c;是一个在程序执行期间发生的事件&#xff0c;它中断正在执行程序的正常指令流。为了能够及时…

干预分析 + 伪回归

目录 干预分析 干预分析的定义 干预分析的产生背景 干预分析的实质 干预分析步骤 步骤一 步骤二 步骤三 步骤四 步骤五 步骤六 干预机制的选择 伪回归 定义 伪回归随机模拟试验 伪回归产生原因 干预分析 干预分析的定义 时间序列常常受到某些外部事件的影响…

R如何安装MSBVAR包!!!请看这里!!

目录 1.MSBVAR介绍 2.为何R上安装失败 3.解决方案 1.MSBVAR介绍 MSBVAR: 估计贝叶斯向量自回归模型和贝叶斯结构向量自回归模型&#xff0c;也可以用于时间序列的因果检验。 2.为何R上安装失败 MSBVAR现在不属于R中的库&#xff0c;属于第三方安装库&#xff0c;并且它在…

easy excel根据行列excel_Excel函数如何根据地级市匹配所在省份计算快递费用

前些日子一个学员问的关于excel计算快递费的问题&#xff0c;office小超老师觉得很有代表性。在这里和大家分享一下具体处理快递费的处理流程。在她的这个案例中&#xff0c;订单信息地区仅为各个地级市&#xff0c;现在的问题就是要根据不同的地级市和各个地区不同的快递费用&…

Java中Error和Exception的异同

Error&#xff08;错误&#xff09;和 Exception&#xff08;异常&#xff09;都是 java.lang.Throwable 类的子类&#xff0c;在 Java 代码中只有继承了 Throwable 类的实例才能被 throw 或者 catch。 Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类&#x…

智能计算之遗传算法(GA)介绍

目录 1. 简介 2. GA思想来源及建立过程 3. 研究发展 4. GA的基本结构 5. GA的实现流程 (1) 染色体编​辑 (2) 群体的初始化 (3) 适应值评价 (4) 选择算子(父体选择) (5) 交配算子(杂交算子) (6) 变异算子 (7) 算法流程 6. 实例举例 7. 遗传算法的改进 (1) 算子的…

sublimetext3插件安装_sublime text 3 交互python

爱折腾的我最近在用sublime text 3 写python&#xff0c;但是原生态的编译模式不支持交互。在网上找了许多资料&#xff0c;想要可以交互运行python&#xff0c;大都需要sublimeREPL这个插件&#xff0c;我不想用这个插件。在多次摸索过后找到了如下解决方案&#xff0c;在此记…

如何用手机打开dcm格式图片_压缩图片用这个神奇吧(电脑版)

一码不扫&#xff0c;可以扫天下&#xff1f;Light Image Resizer是将数码照片和图像存在电脑中&#xff0c;并希望重新调整图片大小&#xff0c;压缩&#xff0c;转换&#xff0c;创建备份&#xff0c;导入或组织图片的人们设计的完美工具。Light Image Resizer 专业的图像缩放…

智能计算之神经网络(BP)介绍

目录 1. 神经网络流行原因 2. 人工神经网络定义 3. 人工神经网络的学习能力 4. 人工神经网络的基本原理 5. 神经网络的研究进展 6. 神经网络的典型结构 6.1 单层感知器网络 6.2 前馈型网络 6.3 前馈内层互联网络 6.4 反馈型网络 6.5 全互联网络 7. 神经网络的学习算…

python系统关键字_Python基础教程 - global关键字及全局变量的用法

Python中global关键字主要作用是声明变量的作用域。 在C语言中&#xff0c;由于变量一定是先声明&#xff0c;后使用&#xff0c;所以我们可以清楚的知道&#xff0c;现在使用的变量是全局还是局部&#xff0c;比如&#xff1a; int a 5; void test(void) { a 1; // 没有先声…