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

—— 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逻辑表达式3+45and_Python 简明教程 --- 5,Python 表达式与运算符相关推荐

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

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

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

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

  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. Miniconda3+PyTorch1.7.1(GPU版)+Win10_x64+GTX1060深度学习环境搭建
  2. 利用Cydia Substrate进行Android HOOK(2)
  3. 8月语言排行:C#继续呈现增长态势
  4. 关于easyui的一些小知识点(1)
  5. vant自动按需引入组件 (推荐)
  6. NeatUpload:支持大文件上传 进度条
  7. mysql binlog 多少_今天才知道,MySQL 的 binlog 编号可以这么大!
  8. jsp页面时间戳转换为时间格式
  9. H3C交换机定时重启配置方法
  10. C语言小程序打印楼梯图案
  11. matlab仿真函数,matlab自动控制仿真常见函数应用
  12. 公共关系礼仪实务章节测试题——公共关系的类型(一)
  13. 鸿蒙双系统怎么切换,苹果 Mac双系统如何切换?用Option键切换双系统的步骤分享...
  14. oppo计算机快捷方式,OPPO怎么把快捷方式添加到桌面 OPPO把快捷方式添加到桌面方法...
  15. 26岁想转行做程序员是否可行?
  16. 如何修改安卓应用图标和程序名称
  17. 2012年5月编程语言排行榜:C再次位居第一 Java 占有率持续下降
  18. c语言怎么将两个整数变量值交换,C语言如何利用异或进行两个值的交换详解
  19. (转)vim 常用快捷键 二
  20. 没有电池没有芯片,这些塑料瓶子正在联网

热门文章

  1. 屏蔽Crash 提示框的两种方式
  2. 【简明表】MATLAB + 矩阵运算
  3. 关于静态局部全局变量
  4. python中用于绘制各种图形、标注文本_python ImageDraw类实现几何图形的绘制与文字的绘制...
  5. 200设备管理器找不到蓝牙_达尔优LK200蓝牙键盘,一键切换+支持三台设备+百元不到...
  6. Linux C :C的汇编码生成
  7. 数据类型(整型、浮点数、字符串、时间和日期)、切分(水平、垂直)
  8. 华为鸿蒙ai字幕,EMUI11一个值得吹爆的功能?AI字幕,支持翻译英日韩
  9. 网络安全 / crt、pem、pfx、cer、key 作用及区别
  10. java tail -f 后返回_tail -f 的实现 | 学步园