靠代码行数来衡量开发进度,就像是凭重量来衡量飞机制造的进度。

—— Bill Gates

目录

1,什么是表达式

表达式是代码的重要组成部分,一个表达式由运算符和操作数两部分组成。

一个表达式就描述了对哪些数据,进行了什么样的操作。

如下就是一个表达式:

sum = 1 + 2

其中,=和+ 都是运算符,=是赋值运算符,+ 是相加运算符,sum,1,2 都是操作数。

这句话的含义是,将1 与 2 相加,并将它们的结果赋值给变量sum。

2,运算符

Python 中包含丰富的运算符,支持各种运算。如下:

算术运算符

位运算符

关系运算符

赋值运算符

逻辑运算符

下面对这些运算符逐一进行介绍。

3,算术运算符

运算符

含义

+

-

*

/

//

除,向下取整

%

取余

**

幂运算

示例:

>>> a = 20

>>> b = 7

>>>

>>> a + b

27

>>> a - b

13

>>> a * b

140

>>> a / b

2.857142857142857

>>> a // b

2

>>> a % b

6

>>> a ** b

1280000000

4,位运算符

进行位运算时,会先将数字转换成二进制,然后再做位运算。

运算符

含义

&

按位与

|

按位或

^

按位异或

~

按位取反

<<

左移

>>

右移

示例:

>>> a = 20

>>> b = 7

>>> a & b

4

>>> a | b

23

>>> a ^ b

19

>>> ~a # a 按位取反

-21

>>> ~b # b 按位取反

-8

>>> a << 3 # a 左移3 位

160

>>> b >> 2 # b 右移2 位

1

5,关系运算符

关系运算符又叫比较运算符,其计算结果为True 或False。

运算符

含义

==

是否相等

!=

是否不等

>

是否大于

<

是否小于

>=

是否大于等于

<=

是否小于等于

示例:

>>> a = 20

>>> b = 7

>>> a == b

False

>>> a != b

True

>>> a > b

True

>>> a < b

False

>>> a >= b

True

>>> a <= b

False

6,赋值运算符

等号= 是最基本的赋值运算符,= 右边的值称为右值,= 左边的值称为左值。

赋值运算符= 的含义是将右值赋值给左值。

例如下面代码,a 为左值,b 为右值,这行代码的含义是,将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

**=

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

7,逻辑运算符

运算符

含义

and

逻辑与

or

逻辑或

not

逻辑非

示例:

>>> a = True

>>> b = False

>>> a and b

False

>>> a or b

True

>>> not a

False

>>> not b

True

在数字中,非0 为真,0 为假:

>>> not 0 # 0 为 False,not 0 为 True

True

>>> not 1 # 1 为 True,not 1 为 False

False

>>> not 2 # 2 为 True,not 2 为 False

False

>>> not -1 # -1 为 True,not -1 为 False

False

>>> not -2 # -2 为 True,not -2 为 False

False

其实,True 就是 1,False 就是 0:

>>> True.real

1

>>> False.real

0

>>> True == 1

True

>>> False == 0

True

在字符串中,非空字符串为真,空字符串为假:

>>> not '' # '' 为 False,not '' 为 True

True

>>> not 'abc' # 'abc' 为 True,not 'abc' 为 False

False

8,运算符的优先级

运算符有优先级之分,表达式在计算的时候,会先计算优先级较高的,处于同一优先级时,会从左到右计算。

如下表达式,该表达式会先计算2 * 3 结果是6,再计算1 + 6,结果是 7:

>>> 1 + 2 * 3

7

之所以会先计算 2 * 3,就是因为* 的优先级高于+ 的优先级。

小括号()的优先级高于我们上面介绍到的所有运算符的优先级,如果想改变计算顺序,可以使用小括号()。

如下表达式,则会先计算1 + 2 结果为3,再计算3 * 3,结果为9:

>>> (1 + 2) * 3

9

下表汇总了上文中介绍到的所有运算符的优先级,从高到低排序,同一行(用,分隔)中的运算符具有相同优先级:

运算符

含义

()

小括号内的表达式优先级最高

**

幂运算

~x,+x,-x

按位取反,正号,负号

*,/,%,//

乘,除,取余,整除

+,-

加,减

<>

左移,右移

&

按位与

^,|

按位异或,按位或

>,=,<=

比较运算

==,!=

等于运算

=,+=,-=,*=,/=,%=,//=,**=

赋值运算

not,and,or

逻辑运算

建议:推荐使用小括号() 来显示表达式的计算顺序,而不依赖运算符本身的优先级,这样一目了然,方便维护。

(完。)

推荐阅读:

欢迎关注作者公众号,获取更多技术干货。

python的表达式3or5_Python 简明教程 --- 5,Python 表达式与运算符相关推荐

  1. 【Python】【进阶篇】十二、Python爬虫的Xpath简明教程(十分钟入门)

    目录 十二.Python爬虫的Xpath简明教程(十分钟入门) 12.1 Xpath表达式 12.2 Xpath节点 12.3 节点关系 12.4 Xpath基本语法 12.4.1 基本语法使用 12 ...

  2. Python re(正则表达式)简明教程

    Python re(正则表达式)简明教程(Python3) 举个栗子 常用函数举例 按字母顺序查询模块

  3. python 三引号_Python 简明教程 --- 4,Python 变量与基本数据类型

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 任何一个人都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码. -- Marti ...

  4. python编写异常处理_Python 简明教程 --- 23,Python 异常处理

    要么做第一个,要么做最好的一个. 目录 我们在编写程序时,总会不自觉的出现一些错误,比如逻辑错误,语法错误和一些其它的运行时错误等. 逻辑错误: 这种错误不会导致程序崩溃,它不容易被发现,只有在执行结 ...

  5. python wasm_Go WebAssembly (Wasm) 简明教程

    Go WebAssembly (Wasm) 简明教程 1 WebAssembly 简介WebAssembly是一种新的编码方式,可以在现代的网络浏览器中运行 - 它是一种低级的类汇编语言,具有紧凑的二 ...

  6. python sorted下标_Python学习教程(Python学习路线):第七天-字符串和常用数据结构

    Python学习教程(Python学习路线):字符串和常用数据结构 使用字符串 第二次世界大战促使了现代电子计算机的诞生,当初的想法很简单,就是用计算机来计算导弹的弹道,因此在计算机刚刚诞生的那个年代 ...

  7. python 优雅退出_Python学习教程:Python 使用 backoff 更优雅的实现轮询

    我们经常在开发中会遇到这样一种场景,即轮循操作.今天介绍一个Python库,用于更方便的达到轮循的效果--backoff. Python学习教程:Python 使用 backoff 更优雅的实现轮询 ...

  8. 【2023版】超详细Python+Pycharm安装保姆级教程,Python环境配置和使用指南,看完这一篇就够了

    这两年被Python初学小白问到最多的问题就是,该用什么代码编辑工具? 说实话,我个人是用Jupyter Notebook最多,主要是经常做数据可视化,方便些. 但对于初学者来说,PyCharm仍是不 ...

  9. python实验原理_【python】《统计学原理实验教程(Python)》书中代码实现

    代码已经上传至GitHub <统计学原理实验教程(Python)>书中代码实现 简介 <统计学原理实验教程(Python)>是厦门大学出版社在2019年出版的图书,主要通过py ...

最新文章

  1. php date 转换 string_php将时间差转换为字符串提示
  2. CISCO交换机配置命令之二
  3. python读取中文txt文本-python读取中文txt文本的方法
  4. 本地图片转base64_从一道面试题说起:GET 请求能传图片吗?
  5. 拒绝双写:巧用Lindorm数据订阅
  6. [转载] python __slots__ 详解(上篇)
  7. 认识计算机硬件实验项目,实验1 认识计算机的硬件与硬件组装
  8. julia有 pytorch包吗_GitHub发布年度机器学习榜:TensorFlow最火,PyTorch失踪,Julia第四...
  9. stm32F051系列教程 前哨篇 建立一个KEIL工程模板
  10. hbase 架构和存储
  11. node.js学习之路(1)
  12. c语言图书管理系统课设报告总结,c语言图书管理系统课设报告.docx
  13. koa-body koa2 使用 koa-body 代替 koa-bodyparser 和 koa-multer
  14. 压缩文件解压密码破解之fcrackzip
  15. 用自己的设备跑各种VI-SLAM算法(1)——VINS/PL-VINS/ROVIO/MSCKF
  16. 计算机常用的启动方法有,加快电脑开机、运行的常用手段
  17. linkerd mysql_纠错帖:Zuul Spring Cloud Gateway Linkerd性能对比
  18. 化工厂人员定位应考虑哪些因素?
  19. MAC终端连接服务器问题杂记
  20. 纯干货,linux内存管理——内存管理架构(建议收藏)

热门文章

  1. 不同Unix环境下date计算日期的用法
  2. Python删除list里面的重复元素的俩种方法
  3. Unity设置AppIcon方法
  4. python 四种单例模式
  5. python-Django收集主机信息
  6. Mac OS X:在标题栏上显示目录完整路径
  7. HTML5中类jQuery选择器querySelector的使用
  8. js判断浏览器\屏幕分辨率(转载)
  9. DBGrid 应用全书(一)
  10. IBM发布IBM Watson创新功能,旨在帮助企业扩展AI使用