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

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

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

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

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

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

位运算, 用于二进制运算

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

一、算术运算

运算(符)

说明

实例

+

两个对象相加

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

python中的运算符_Python中的运算符相关推荐

  1. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  2. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

  3. python关系运算符中表示不等于的关系运算符_Python学习之------运算符表达式(关系运算符,逻辑运算符,三元表达式,成员关系)...

    @详细看Python学习手册第121页. 1,算术运算符(加减乘除) 2,关系运算符(又叫比较运算符 > < == != >= <=) xy,x>=y    大小比较,返 ...

  4. python中 是什么运算符_Python中什么是算术运算符、赋值运算符和复合运算符?...

    本篇文章给大家带来的内容是介绍Python中什么是算术运算符.赋值运算符和复合运算符.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助. 算术运算符 常见的算术运算符有 : + 加法运算符 ...

  5. python整商运算符_python中的运算符

    一.python中的运算符主要分为 算数运算符.赋值运算符.比较运算符.逻辑运算符 1.算数运算符: 1)加减乘除 注意: (1)除法的结果是浮点数 (2)除法会遇到除不尽的情况 (3)被除数不能为0 ...

  6. python中的运算符_Python 中的神秘运算符

    今天我们来讲讲 Python 里一个不为众人所知的运算符.你可能会觉得疑惑:还有我不知道的运算符?别急着下结论,先往下看看再说. 在 Python3.5 中通过 PEP465https://www.p ...

  7. python中基本运算符_Python中的基本运算符及示例

    python中基本运算符 Operators are symbols which tells the interpreter to do a specific operation such as ar ...

  8. python中算术运算符_python中的基本算术运算符有哪些

    python中的基本算术运算符有哪些 发布时间:2020-11-16 14:54:33 来源:亿速云 阅读:74 今天就跟大家聊聊有关python中的基本算术运算符有哪些,可能很多人都不太了解,为了让 ...

  9. python布尔类型运算_Python中与或非运算(布尔运算)

    就像可以用算术运算符(+.−.*./ 等)把数字组合起来一样,我们也可以用布尔运算符把布尔值组合起来.Python 中的 3 个主要布尔运算符是 and.or 和 not.当用布尔运算符组合两个或多个 ...

最新文章

  1. python代码大全表解释-python操作列表的函数使用代码详解
  2. 使用CreateFile函数打开COM10及以上串行口
  3. 信号量函数 semget() semop() semctl()
  4. windows 禁用ipv6服务_39.Dism++ Windows系统简洁优化
  5. 关系数据库——范式/反范式的利弊权衡和建议
  6. dedeCMS后台入口安全修改
  7. 【Arthas】Arthas classloader类加载器
  8. C++基础与深度解析第三章:数组、vector与字符串
  9. NBIA Data Retriever(NBIA数据下载工具)使用
  10. Redis Manager 如何查看监控
  11. Android自己写的三款实用开关控件
  12. Html 中判断某个class的个数
  13. STM32F103ZET6利用DAC产生噪声
  14. java中eq、ne、gt、lt、ge、le分别代表含义
  15. Mall谷粒商城(基础篇的开发)
  16. 打开cmd 的方式和常用的cmd快捷键
  17. wsl 设置阿里云源
  18. 旭辉完成2020年销售目标:还要加码广西,却在北京违规被通报
  19. 阿里快递扩张之路:集齐“四通一达”后持续增持,再花百亿图啥?
  20. tomcat 服务器无响应,关于tomcat:数据库连接池连接耗尽导致tomcat请求无响应呈现出假死状态...

热门文章

  1. Win7系统账户被禁用的解决方法
  2. IE浏览器网页无法缩放怎么办 解决IE浏览器网页无法缩放的方法
  3. 理解JavaScript中this的指向详解
  4. matlab矢量角度,MATLAB矢量,角度,图
  5. mybatis中<mappers> ,mapperLocations,和MapperScannerConfigurer 用法
  6. 接口文档生成工具Swagger2的使用
  7. mysql80配置环境变量_MySQL:安装与配置
  8. 文件读取 linux_Linux 进程、线程、文件描述符的底层原理
  9. bc8android汽车中控屛功能有哪些,丰田酷路泽中控台的8大功能 你们知道都是干什么用的?...
  10. Mac AndroidStudio常用快捷键